really good but the algoritm isn't complete