Moved region struct out to be on its own along with some minor changes.