Moved Future to a Struct to get around T? issues. Also attempted to implement map but ran up against type inference problems in Swift.