smart algorithm