more explicit type check