separate view rendering concern from model

and make all view rendering based on the model