refactored:  changing Viewport to ProjectView to avoid overloading the term viewport