+ attempting to refactor out shared_ptr overuse