public void CopyInto(IGameObject newObject)
        {
            //Copy components
            foreach (var component in AllComponents())
            {
                var newComponent = componentFactory.GetComponent(component.ConcreteType);
                newObject.AddComponent(component.InterfaceType, newComponent);
                component.CopyInto(newComponent);
            }

            //Copy metadata and layer info
            foreach (var entry in metadata)
            {
                newObject.AddMetadata(entry.Key, entry.Value);
            }

            newObject.Layer = Layer;
        }