fix: Return a promise from the handler to make testing easier.