first pass at parser
misc stuff