fix callback return pattern