We need moar refactoring