Reducing Technical Debt - Why Low-Level Design Matters in Software Engineering | OneNoughtOne