switched to boost shared_ptr for non-polymorphic pointers