- camera refactoring added viewport