added some exceptions
basic parsing functionally complete