Some more error handling
Remove unnecessary coroutine headers; just pass on the Future with return instead