Feature/using singleton factory