support inclusion checking
refactor