Service & repository layers