added watcher objects to control the event loop