add: only one callback support, it's first argument is null when successed