Programming is easy, design is hard.