Work with promise or standard callback. Optional params can be omitted.
Basic tests + CI