added deferred init to Futures so that they can be satisfied outside of the constructor