Considering major underlying concepts of object-oriented design, which concept indicates how well objects abstract underlying data and procedure so that each object is as independent as possible?