Rewrite report renderer

Rewrite report renderer, adding support custom user-generated blocks.