change logic listener