Better comments for go doc
diff --git a/viper.go b/viper.go
index e563e74..44f3819 100644
--- a/viper.go
+++ b/viper.go
@@ -44,6 +44,8 @@
 var pflags map[string]*pflag.Flag = make(map[string]*pflag.Flag)
 var aliases map[string]string = make(map[string]string)
 
+// Explicitly define the path, name and extension of the config file
+// Viper will use this and not check any of the config paths
 func SetConfigFile(in string) {
 	if in != "" {
 		configFile = in
@@ -54,6 +56,9 @@
 	return configFile
 }
 
+// Add a path for viper to search for the config file in.
+// Can be called multiple times to define multiple search paths.
+
 func AddConfigPath(in string) {
 	if in != "" {
 		absin := absPathify(in)
@@ -118,6 +123,11 @@
 	return
 }
 
+// Bind a specific key to a flag (as used by cobra)
+//
+//	 serverCmd.Flags().Int("port", 1138, "Port to run Application server on")
+//	 viper.BindPFlag("port", serverCmd.Flags().Lookup("port"))
+//
 func BindPFlag(key string, flag *pflag.Flag) (err error) {
 	if flag == nil {
 		return fmt.Errorf("flag for %q is nil", key)
@@ -172,6 +182,8 @@
 	return nil
 }
 
+// Get returns an interface..
+// Must be typecast or used by something that will typecast
 func Get(key string) interface{} {
 	key = strings.ToLower(key)
 	v := find(key)
@@ -202,6 +214,8 @@
 	return t != nil
 }
 
+// Aliases provide another accessor for the same key.
+// This enables one to change a name without breaking the application
 func RegisterAlias(alias string, key string) {
 	registerAlias(alias, strings.ToLower(key))
 }
@@ -236,12 +250,16 @@
 	return exists
 }
 
+// Set the default value for this key.
+// Default only used when no value is provided by the user via flag, config or ENV.
 func SetDefault(key string, value interface{}) {
 	// If alias passed in, then set the proper default
 	key = realKey(strings.ToLower(key))
 	defaults[key] = value
 }
 
+// The user provided value (via flag)
+// Will be used instead of values obtained via config file, ENV or default
 func Set(key string, value interface{}) {
 	// If alias passed in, then set the proper override
 	key = realKey(strings.ToLower(key))
@@ -254,6 +272,8 @@
 	return fmt.Sprintf("Unsupported Config Type %q", string(str))
 }
 
+// Viper will discover and load the configuration file from disk
+// searching in one of the defined paths.
 func ReadInConfig() error {
 	jww.INFO.Println("Attempting to read in config file")
 	if !stringInSlice(getConfigType(), SupportedExts) {
@@ -301,6 +321,8 @@
 	}
 }
 
+// Name for the config file.
+// Does not include extension.
 func SetConfigName(in string) {
 	if in != "" {
 		configName = in