using RECURSIVE_INTERLEVEL_CHECK macro to shorten code 4x