better block handling