add an option: makeCallback