public static DerivedPremiseObject GetDerivedPremiseObject(Dictionary <string, PremiseObject> premiseObjects, string location)
    {
        DerivedPremiseObject po = null;

        if (!premiseObjects.TryGetValue(location, out po))
        {
            po = new DerivedPremiseObject();
            premiseObjects.Add(location, po);
        }
        return(po);
    }
    public static DerivedPremiseObject GetDerivedPremiseObject(string location)
    {
        DerivedPremiseObject po = null;

        if (!PremiseObject.PremiseObjects.TryGetValue(location, out po))
        {
            po = new DerivedPremiseObject();
            PremiseObject.PremiseObjects.Add(location, po);
        }
        return(po);
    }