implement generic method checker and is-union