make some improoves