added ViewerService