Made regions behave as expected

Includes a refactoring of regions into two components (model and view)