This makes dealing with lists more robust since the free fuction is automatically called when the wrapper goes out of scope