reorganize headers, added boost's unique_ptr impl, reduced STL container