some improvements
fix parser