initial version, wrote a parser