proper encapsulation