(#848) - add promises

still rough, could use more tests