futures can now be serialized and passed to async as functions