add encapsulation