parsing partially working. Should really add separate lexer