An Architectural Approach to Level Design