added IConvertible extension method