add more scanning and parsing routines