implementing future api