add include guard and stl list pointer memory manager