ARC version with updated singleton pattern

Hola, I'm the original author of this (Yes I take all blame ;). I promised Hiten an ARC'ified version of this, so here you go.