encapsulated the program