prototype locking and unlocking