some improvements
fix conflict