private void Initialize(ManagedInstanceDirective directive = null)
{
Directives = directive ?? new ManagedInstanceDirective();
Log.Logger.Debug("Instance initialized with {@directive}", Directives);
Information = new Information(this);
Statistics = new Statistic(this);
Synchronization = new Synchronization(this);
Announcers = new AnnouncerCollection();
Folders = new FoldersCollection();
Errors = new ErrorCollection();
PossibleEndpoints = new RestEndpointCollection();
Id = Guid.NewGuid();
ConfigureThreads();
ConfigureStateMachine();
}