non recursive check