update blocks and functionality