Right now it is extremely difficult to reuse the code in these classes for other problem types, boundary conditions, etc.