split provider object to it's own file so that new providers can easily be added in the future