Add initial future impl
Add some comments