Refactored everything, done