scanner and parser added