1. Handle functions that do not return a promise or throw exceptions
2. Add tests to rerun of promises