public override object Clone()
        {
            var clonedPoller = (IFileSystemPoller) _poller.Clone();

            var clonedEncapsWatcher = (IFileSystemWatcher) InternalWatcher.Clone();

            var clonedOverseer = new FileSystemOverseer(clonedPoller, clonedEncapsWatcher)
            { PollerReportsDelay = this.PollerReportsDelay };

            clonedOverseer.ClearPolicies();
            foreach (var policy in ErrorHandlingPolicies)
            {
                clonedOverseer.AddPolicy(policy);
            }

            return clonedOverseer;
        }