generic repository instead of single repos