Посмотрев на диаграмму своего класса, я думаю, что вы применяете процедурный подход к проблеме ОО. Похоже, что ваши синглтоны содержат все поведение, которое работает с записями в вашей доменной модели, а записи имеют очень небольшое поведение.
Чтобы лучше понять вашу объектную модель, я бы попытался классифицировать отношения (линии) на диаграмме классов как "is-a", "has-a" и т. Д., Чтобы вы лучше видно что у тебя есть.
Адресату требуется некоторая информация из InfoPanel, но, скорее всего, не вся информация. Можно ли передавать только необходимую информацию в пункт назначения вместо InfoPanel?
Какое состояние захватывается в классе DestinationRouting, что делает его одиночным? Эта информация принадлежит в другом месте?