Move creation methods of Future/Promise to extra interface and share it