made the callback optional