change logic