block lookup can now also allocate blocks so there is no need to do multiple lookups of the block did not exist