moved Future internals over to using Atomic