block semi-defined