improve many code