better type check triangle