The University has random contests once in a while for... well whatever they feel like giving away. The limitation is that it has to be a high-level OOP programming language and it can't use premade libraries to achieve the given task. Anyway, this time is to make a terminal program which will decompress a 5GB Zip File. Whoever's Application uses the least memory for the amount of time it takes to open the zip file wins. I have some memory management questions. Does an Autorelease pool adhere to data encapsulation? How costly is an auto release pool compared to just using retain/release manually. How do you free up memory from C primitives? (I know like... no C) Both on the stack and using pointers. Can C/Objective-C stream raw data to a file on the disk instead of memory? How would I do that?