Object oriented design has proven itself as a powerful tool in the field of scientific computing. Several software packages, libraries and toolkits exist, in particular in the FEM arenathat follow this design methodology providing extensible, reusable,and flexible software while staying competitive to traditionallydesigned point tools in terms of efficiency. However, the common approach to identify classes is to turn data structures and algorithms of traditional implementations into classes such that the level of abstraction is essentially not raised. In this paper we discuss an alternative way to approach the design challenge which we call “concept oriented design”. We apply this design methodology to Petrov-Galerkin methods leading to a class library for both, boundary element methods (BEM) and finite element methods (FEM). We show as a particular example the implementation of hp-FEM using the library with specialattention to the handling of inconsistent meshes.