preprocessor integrate with watcher