Changed from subclassing to inclusion.
Removed use of std::unique_ptr from inside STL collections.  This may have been a cause of problems with Intel C++