encapsulation and overloading