[WIP] Refactored Region class to use less error prone nested framework (also allows states to be cross-region)