Сергей delphinpro, да возможно пример плохой, но тут вопрос больше по - "А правильно ли я делаю придерживаясь принципу единой ответсвтенности".
А насчет рещения: cейчас подумав над вашим комментарием, то получать data лучше с какого нибудь репозитория с нужными данными и пробрасывать в этот класс и перебирать уже все ключи которые пришли.