nice refactoring!