block interpreter