algoritm functional - mai trebuie refactorizat