New design of parse()