restructuring client code, retaining old version during transition