almost done with viewservice, still have to test and debug though