Refactor everything