Switched to using classes for generic type arguments since MonoTouch can't handle it