wrapped everything in viewem