added viewport class to repo. still needs work