add combinator implementations