repo moved to a separate class