added viewer and interface