Encapsulated fileds and added abstract classes