add Observer pattarn