refactoring and test for only once run good callback