Conditional cache clear and better blocks

Now, blocks are cleared on calling render() and don't clear their value on every read.