use view master pattern