refactor lại code