added parser and exception classes