cleanup
fixed memory leak due to auto_ptr<Portable>