some minor changes, parser still not good