Allow singleton provider to store multiple kinds of providers. Moved utilities to their own file. Added site environment validation.