first stab at a parser, long way to go