added error detection and a parser engine