finish functions read blocks( direct and indirect)