add validation for callback is undefined
include noop from lodash
add testing for callback trigger