edit promise & generator