time to refactor everything