/// <summary>
        /// Finds an object of the inputted name and casts to the inputted type K.
        /// First searches the ActiveObjects and then the ObjectsToAdd
        /// </summary>
        /// <typeparam name="K">The type we wish to return the found object as</typeparam>
        /// <param name="predicate">The predicate we will use to apply a condition for which we wish to find the object</param>
        /// <returns>Returns the object casted to K or null</returns>
        public K FindChild <K>(Predicate <T> predicate) where K : T
        {
            K obj = null;

            obj = ActiveObjects.Find(predicate) as K;

            if (obj != null)
            {
                return(obj);
            }

            obj = ObjectsToAdd.Find(predicate) as K;

            return(obj);
        }