Итоги голосования для комментария:
Фиркрааг
Это, походу, один из тех случаев, когда сначала используется более универсальный интерфейс из моего примера выше, а потом уже вторичный интерфейс, в данном случае — ГУРПС.