separate type cast