Changed Result to only have a success type parameter, so it's easier to use and actually works correctly.
Added a Future with a Result baked into it