Moved code to separate service providers