Massive Refactoring round 2

* Factored out CLocation
* Factored out Dimension in Region