Working on abstracting logic into service providers