Fixed #36: Changed Marshal to Unmarshal throughout.
diff --git a/README.md b/README.md
index 47b1798..1e06e32 100644
--- a/README.md
+++ b/README.md
@@ -30,7 +30,7 @@
 
 Viper does the following for you:
 
-1. Find, load, and marshal a configuration file in JSON, TOML, or YAML.
+1. Find, load, and unmarshal a configuration file in JSON, TOML, or YAML.
 2. Provide a mechanism to set default values for your different
    configuration options.
 3. Provide a mechanism to set override values for options specified through
@@ -272,8 +272,8 @@
 // read from remote config the first time.
 err := runtime_viper.ReadRemoteConfig()
 
-// marshal config
-runtime_viper.Marshal(&runtime_conf)
+// unmarshal config
+runtime_viper.Unmarshal(&runtime_conf)
 
 // open a goroutine to wath remote changes forever
 go func(){
@@ -287,9 +287,9 @@
 	        continue
 	    }
 	
-	    // marshal new config into our runtime config struct. you can also use channel 
+	    // unmarshal new config into our runtime config struct. you can also use channel 
 	    // to implement a signal to notify the system of the changes
-	    runtime_viper.Marshal(&runtime_conf)
+	    runtime_viper.Unmarshal(&runtime_conf)
 	}
 }()
 ```
@@ -389,15 +389,15 @@
 GetString("datastore.metric.host") //returns "0.0.0.0"
 ```
 
-### Marshaling
+### Unmarshaling
 
-You also have the option of Marshaling all or a specific value to a struct, map,
+You also have the option of Unmarshaling all or a specific value to a struct, map,
 etc.
 
 There are two methods to do this:
 
- * `Marshal(rawVal interface{}) : error`
- * `MarshalKey(key string, rawVal interface{}) : error`
+ * `Unmarshal(rawVal interface{}) : error`
+ * `UnmarshalKey(key string, rawVal interface{}) : error`
 
 Example:
 
@@ -409,7 +409,7 @@
 
 var C config
 
-err := Marshal(&C)
+err := Unmarshal(&C)
 if err != nil {
 	t.Fatalf("unable to decode into struct, %v", err)
 }
diff --git a/util.go b/util.go
index a605e62..dc60a44 100644
--- a/util.go
+++ b/util.go
@@ -129,7 +129,7 @@
 	return path, nil
 }
 
-func marshallConfigReader(in io.Reader, c map[string]interface{}, configType string) error {
+func unmarshallConfigReader(in io.Reader, c map[string]interface{}, configType string) error {
 	buf := new(bytes.Buffer)
 	buf.ReadFrom(in)
 
diff --git a/viper.go b/viper.go
index e249430..5afed24 100644
--- a/viper.go
+++ b/viper.go
@@ -513,16 +513,16 @@
 	return parseSizeInBytes(sizeStr)
 }
 
-// Takes a single key and marshals it into a Struct
-func MarshalKey(key string, rawVal interface{}) error { return v.MarshalKey(key, rawVal) }
-func (v *Viper) MarshalKey(key string, rawVal interface{}) error {
+// Takes a single key and unmarshals it into a Struct
+func UnmarshalKey(key string, rawVal interface{}) error { return v.UnmarshalKey(key, rawVal) }
+func (v *Viper) UnmarshalKey(key string, rawVal interface{}) error {
 	return mapstructure.Decode(v.Get(key), rawVal)
 }
 
-// Marshals the config into a Struct. Make sure that the tags
+// Unmarshals the config into a Struct. Make sure that the tags
 // on the fields of the structure are properly set.
-func Marshal(rawVal interface{}) error { return v.Marshal(rawVal) }
-func (v *Viper) Marshal(rawVal interface{}) error {
+func Unmarshal(rawVal interface{}) error { return v.Unmarshal(rawVal) }
+func (v *Viper) Unmarshal(rawVal interface{}) error {
 	err := mapstructure.WeakDecode(v.AllSettings(), rawVal)
 
 	if err != nil {
@@ -788,19 +788,19 @@
 
 	v.config = make(map[string]interface{})
 
-	return v.marshalReader(bytes.NewReader(file), v.config)
+	return v.unmarshalReader(bytes.NewReader(file), v.config)
 }
 
 func ReadConfig(in io.Reader) error { return v.ReadConfig(in) }
 func (v *Viper) ReadConfig(in io.Reader) error {
 	v.config = make(map[string]interface{})
-	return v.marshalReader(in, v.config)
+	return v.unmarshalReader(in, v.config)
 }
 
 // func ReadBufConfig(buf *bytes.Buffer) error { return v.ReadBufConfig(buf) }
 // func (v *Viper) ReadBufConfig(buf *bytes.Buffer) error {
 // 	v.config = make(map[string]interface{})
-// 	return v.marshalReader(buf, v.config)
+// 	return v.unmarshalReader(buf, v.config)
 // }
 
 // Attempts to get configuration from a remote source
@@ -823,14 +823,14 @@
 	return nil
 }
 
-// Marshall a Reader into a map
+// Unmarshall a Reader into a map
 // Should probably be an unexported function
-func marshalReader(in io.Reader, c map[string]interface{}) error {
-	return v.marshalReader(in, c)
+func unmarshalReader(in io.Reader, c map[string]interface{}) error {
+	return v.unmarshalReader(in, c)
 }
 
-func (v *Viper) marshalReader(in io.Reader, c map[string]interface{}) error {
-	return marshallConfigReader(in, c, v.getConfigType())
+func (v *Viper) unmarshalReader(in io.Reader, c map[string]interface{}) error {
+	return unmarshallConfigReader(in, c, v.getConfigType())
 }
 
 func (v *Viper) insensitiviseMaps() {
@@ -863,7 +863,7 @@
 	if err != nil {
 		return nil, err
 	}
-	err = v.marshalReader(reader, v.kvstore)
+	err = v.unmarshalReader(reader, v.kvstore)
 	return v.kvstore, err
 }
 
@@ -885,7 +885,7 @@
 	if err != nil {
 		return nil, err
 	}
-	err = v.marshalReader(reader, v.kvstore)
+	err = v.unmarshalReader(reader, v.kvstore)
 	return v.kvstore, err
 }
 
diff --git a/viper_test.go b/viper_test.go
index a5f2c52..6b9db6e 100644
--- a/viper_test.go
+++ b/viper_test.go
@@ -78,23 +78,23 @@
 	Reset()
 	SetConfigType("yaml")
 	r := bytes.NewReader(yamlExample)
-	marshalReader(r, v.config)
+	unmarshalReader(r, v.config)
 
 	SetConfigType("json")
 	r = bytes.NewReader(jsonExample)
-	marshalReader(r, v.config)
+	unmarshalReader(r, v.config)
 
 	SetConfigType("properties")
 	r = bytes.NewReader(propertiesExample)
-	marshalReader(r, v.config)
+	unmarshalReader(r, v.config)
 
 	SetConfigType("toml")
 	r = bytes.NewReader(tomlExample)
-	marshalReader(r, v.config)
+	unmarshalReader(r, v.config)
 
 	SetConfigType("json")
 	remote := bytes.NewReader(remoteExample)
-	marshalReader(remote, v.kvstore)
+	unmarshalReader(remote, v.kvstore)
 }
 
 func initYAML() {
@@ -102,7 +102,7 @@
 	SetConfigType("yaml")
 	r := bytes.NewReader(yamlExample)
 
-	marshalReader(r, v.config)
+	unmarshalReader(r, v.config)
 }
 
 func initJSON() {
@@ -110,7 +110,7 @@
 	SetConfigType("json")
 	r := bytes.NewReader(jsonExample)
 
-	marshalReader(r, v.config)
+	unmarshalReader(r, v.config)
 }
 
 func initProperties() {
@@ -118,7 +118,7 @@
 	SetConfigType("properties")
 	r := bytes.NewReader(propertiesExample)
 
-	marshalReader(r, v.config)
+	unmarshalReader(r, v.config)
 }
 
 func initTOML() {
@@ -126,7 +126,7 @@
 	SetConfigType("toml")
 	r := bytes.NewReader(tomlExample)
 
-	marshalReader(r, v.config)
+	unmarshalReader(r, v.config)
 }
 
 // make directories for testing
@@ -201,11 +201,11 @@
 	assert.Equal(t, 45, Get("age"))
 }
 
-func TestMarshalling(t *testing.T) {
+func TestUnmarshalling(t *testing.T) {
 	SetConfigType("yaml")
 	r := bytes.NewReader(yamlExample)
 
-	marshalReader(r, v.config)
+	unmarshalReader(r, v.config)
 	assert.True(t, InConfig("name"))
 	assert.False(t, InConfig("state"))
 	assert.Equal(t, "steve", Get("name"))
@@ -266,7 +266,7 @@
 
 	remote := bytes.NewReader(remoteExample)
 	assert.Equal(t, "0001", Get("id"))
-	marshalReader(remote, v.kvstore)
+	unmarshalReader(remote, v.kvstore)
 	assert.Equal(t, "0001", Get("id"))
 	assert.NotEqual(t, "cronut", Get("type"))
 	assert.Equal(t, "remote", Get("newkey"))
@@ -378,7 +378,7 @@
 	RegisterAlias("Roo", "baz")
 }
 
-func TestMarshal(t *testing.T) {
+func TestUnmarshal(t *testing.T) {
 	SetDefault("port", 1313)
 	Set("name", "Steve")
 
@@ -389,7 +389,7 @@
 
 	var C config
 
-	err := Marshal(&C)
+	err := Unmarshal(&C)
 	if err != nil {
 		t.Fatalf("unable to decode into struct, %v", err)
 	}
@@ -397,7 +397,7 @@
 	assert.Equal(t, &C, &config{Name: "Steve", Port: 1313})
 
 	Set("port", 1234)
-	err = Marshal(&C)
+	err = Unmarshal(&C)
 	if err != nil {
 		t.Fatalf("unable to decode into struct, %v", err)
 	}