Making a finite element code easier to maintain is achieved by further modulaizing it. Due to its two levels of modularity (of procedures and data), object-oriented programming is the method of choice. Its potential is investigated in two bottle-necks of finite element programming where so far it has not proved significantly more successful than classical Fortran programming. The first of these is lack of adequate data structures between the analysis specifications and the basic objects of the finite element method, like the element and the node. This is solved by defining two classes of objects, namely Problem and Domain, with clearly differentiated specifications. The second gap deals with solving linear equation systems. Introducing an i...