Add viewer service to handle all view switching in modules