some improvements
fix merge