refactoring! refactoring! refactoring!