change signatures
1. finish parser
2. modify traverse function to allow prefix