Refactored everything + implemented the new style