improve makeshared proposal