I'm not sure `self.locations` will work properly with inheritance (ditto in the UI), I think you need to both list and permit children too.