Added monitorlist

-Tidied code
-Added EBNF to relevant methods
TODO: A lot of error checking