Implement smart pointers and other functionality that Boost offers in order to remove the dependency.