added protect method