Add share and protect method with tests