Add future and promise support