type check static dispatch