fix up some generic types that referenced special types
implemented return types for out parameter functions
some notes