In this experience report we present a case study in designing, implementing, and reusing an object-oriented framework for constructing and editing complex search expressions over arbitrary data domains. We present a framework design that achieves a large degree of business domain decoupling through the application of design patterns. We outline the reuse process and analyse and classify the problems encountered during the first instance of framework reuse. The major lessons learned are that while design patterns are well-known for providing decoupling solutions at the code level, the lack of similar decoupling techniques at the non-code level may give rise to technical mismatch problems between the framework and the client systems; that such technical mismatch problems can be costly; and that a reusable framework may beneficially provide a solution template when it can not provide actual functionality.