some refactoring love