fully qualify shared_ptr as it can conflict with the C++11 definition.
avoid importing full std namespace as it causes lots of conflicts in C++11 era.

als made some cleanups, removing effectively unused variables.
avoid importing full std namespace
missing extra dist