some improvements