more use of shared pointer