no need for return stmt
more macro trickery, now close to a useful check macro