change from broken blocking j.u.c.Future wrapper to proper Promise implementation