combination refactor