reworked block validation