Making frameworks work: a project retrospective
designing reusable classes .