updated encapsulation