Still working
Done refactoring