diff --git a/viper.go b/viper.go
index e88dec9..a56472f 100644
--- a/viper.go
+++ b/viper.go
@@ -20,6 +20,7 @@
 
 	"github.com/BurntSushi/toml"
 	"github.com/kr/pretty"
+	"github.com/mitchellh/mapstructure"
 	"github.com/spf13/cast"
 	jww "github.com/spf13/jwalterweatherman"
 	"gopkg.in/yaml.v1"
@@ -93,6 +94,28 @@
 	return cast.ToStringMapString(Get(key))
 }
 
+// takes a map and uses reflection to convert it into the given Go native structure.
+// rawVal must be a pointer to a struct.
+func GetIntoStruct(key string, rawVal interface{}) error {
+	return mapstructure.Decode(Get(key), rawVal)
+}
+
+func GetAllIntoStruct(rawVal interface{}) (err error) {
+	err = mapstructure.Decode(defaults, rawVal)
+	if err != nil {
+		return
+	}
+	err = mapstructure.Decode(config, rawVal)
+	if err != nil {
+		return
+	}
+	err = mapstructure.Decode(override, rawVal)
+	if err != nil {
+		return
+	}
+	return
+}
+
 func find(key string) interface{} {
 	var val interface{}
 	var exists bool
diff --git a/viper_test.go b/viper_test.go
index f418cbd..c8ab4f9 100644
--- a/viper_test.go
+++ b/viper_test.go
@@ -128,3 +128,29 @@
 	RegisterAlias("Baz", "Roo")
 	RegisterAlias("Roo", "baz")
 }
+
+func TestIntoStruct(t *testing.T) {
+	SetDefault("port", 1313)
+	Set("name", "Steve")
+
+	type config struct {
+		Port int
+		Name string
+	}
+
+	var C config
+
+	err := GetAllIntoStruct(&C)
+	if err != nil {
+		t.Fatalf("unable to decode into struct, %v", err)
+	}
+
+	assert.Equal(t, &C, &config{Name: "Steve", Port: 1313})
+
+	Set("port", 1234)
+	err = GetAllIntoStruct(&C)
+	if err != nil {
+		t.Fatalf("unable to decode into struct, %v", err)
+	}
+	assert.Equal(t, &C, &config{Name: "Steve", Port: 1234})
+}
