class depend of type