Churro singleton + factory approach