heavy refactoring, created ChangeHandler and ProductHandler methods.