add service Provider
more cleaner