fix algoritm