algoritm fixes