a few simple combinators