Changing pojo names and abstracting
Adding abstraction