refactoring with rombine