content API
set content
more robust
some tweaks
some layout