Multilevel methods are fast and efficient solvers for a wide range of technical and scientific applications. Their structural complexity makes the construction of powerful multilevel based software difficult. Conventional software engineering concepts do not provide a sufficient basis for the implementation of general, fast, and robust multilevel applications. In particular, there is a severe tradeoff between the generality of such software and its efficiency. These problems can be alleviated on the basis of a consequent data abstraction. To equally satisfy the demands for generality and efficiency it is necessary to introduce a two level software model based on a generation and an execution phase. Suitable implementation techniques are discussed.