add callback for special need