API cleanup, removing not used dependency
service factory allows setting default provider
refactored factories
renamed singleton factory method