added safe methods for channel promises