major refactoring: views receive zone objects, zones expose a lot of data publicly