add auth factory