Separated watcher and main