public string SerializeLevel(Level l)
        {
            var types =
                from q
                in System.Reflection.Assembly.GetExecutingAssembly().GetTypes()
                where q.IsSubclassOf(typeof(Unicorn21.GameObjects.StaticGameObject)) || q.IsSubclassOf(typeof(LevelChunk))
                select q;

            //try
            //{
            //    var exTypes =
            //        from r
            //            in System.Reflection.Assembly.LoadFile(l.GameObjectsPath).GetTypes()
            //        where r.IsSubclassOf(typeof(Unicorn21.GameObjects.GameObject))
            //        select r;

            //    types = types.Union(exTypes);
            //}
            //catch
            //{
            //}
            var sw = new System.IO.StringWriter();
            System.Xml.Serialization.XmlSerializer x = new
                System.Xml.Serialization.XmlSerializer(l.GetType(), types.ToArray());

            x.Serialize(sw, l);
            return sw.ToString();
        }
        public void SaveLevel(Level l, string path)
        {
            var types = from q in System.Reflection.Assembly.GetExecutingAssembly().GetTypes() where q.IsSubclassOf(typeof(Unicorn21.GameObjects.StaticGameObject)) || q.IsSubclassOf( typeof(Unicorn21.GameObjects.LevelChunk)) select q;

            //var exTypes = from r in System.Reflection.Assembly.LoadFile(l.GameObjectsPath).GetTypes() where r.IsSubclassOf(typeof(Unicorn21.GameObjects.GameObject)) select r;

            //types = types.Union(exTypes);

            System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(l.GetType(), types.ToArray());
            x.Serialize(new System.IO.FileStream(path,System.IO.FileMode.Create), l);
        }