Decouple Swift ringbuilding logic