Refactoring in some other functions and fixed many tests, only remain fix a function and mission complete!