more error handeling, and new requirements
changed lexing a bit after a couple of tests