fun with design pattern
Fun with ValueWatcher