Repository pattern draft