Refactoreado todo :D