refactored combine methods