added some basic lexing and parsing