improved flexibility.
Add more flexibility to parser