some improments