Oh man ... You're a life saver (and a typing saver ). I knew there had to be a better way -- that previous process was freaking ridiculous -- I was like a pointer accountant doing the pointer books every time i left the method. Once I toss in exceptions in there too, this code will actually look pretty damn normal. Before literally 60% of my function was error handling and cleanup.