REFACTOR the way future obj is handled, async NOT fixed though :(