changed generic types.