public IContainer Build()
        {
            var res = constructor(components.Reverse());

            foreach (var aware in components.OfType <IContainerAware>())
            {
                aware.SetContainer(res);
            }
            return(res);
        }