content(json) is now independent of layout(html)