I'm in favor using provider and then make another PR for transforming provider to services