refactors combinator flip