new type of value listener system