oh noes refactoring