ProtectionModel refactor complete