use boost to suppply tr1/shared_ptr