work on scanner and parser