Adding basic viewport class hierarchy