added 'on' and 'upon' combinators
more tests