implemented add_block