encapsulation

opts as protected