some work on combinators