ARC version with updated singleton pattern