Added Exceptions, moved Variables to the Parser, implemented ParserList