Provide a 'correct' promise implementation