add repository factory