added data abstraction and encapsulation.