move addListener to execute() from prepare()