some improvements and tips