try to improve my code
almost succee