added combinator and parser