rewrite parser, removed requirements