simplify defProtected
reuse $repeater