added partial promise implementation for comms