some promise fixes