First commit before refactoring
Refactoring
Not working, but I have to sync