provided Observer-pattern.