Updated viewpoint logic, placed it in new model. Re-organized schemas and model logic. #4