diff --git a/cmd/helm/inspect.go b/cmd/helm/inspect.go
index 6ecdd47f6340d51c0eb8a414bb33ffe3b83bfe30..9baa886166cc7e48b13810a2f554d3f480a18527 100644
--- a/cmd/helm/inspect.go
+++ b/cmd/helm/inspect.go
@@ -22,10 +22,10 @@ import (
 	"strings"
 
 	"github.com/ghodss/yaml"
-	"github.com/golang/protobuf/ptypes/any"
 	"github.com/spf13/cobra"
 
 	"k8s.io/helm/pkg/chartutil"
+	"k8s.io/helm/pkg/hapi/chart"
 )
 
 const inspectDesc = `
@@ -248,15 +248,15 @@ func (i *inspectCmd) run() error {
 		if readme == nil {
 			return nil
 		}
-		fmt.Fprintln(i.out, string(readme.Value))
+		fmt.Fprintln(i.out, string(readme.Data))
 	}
 	return nil
 }
 
-func findReadme(files []*any.Any) (file *any.Any) {
+func findReadme(files []*chart.File) (file *chart.File) {
 	for _, file := range files {
 		for _, n := range readmeFileNames {
-			if strings.EqualFold(file.TypeUrl, n) {
+			if strings.EqualFold(file.Name, n) {
 				return file
 			}
 		}
diff --git a/cmd/helm/install.go b/cmd/helm/install.go
index b514554779f7b2fabc213a4b8af25ee92d4ee746..db429b5f370b5dc29b41a015557b8167a9d9621b 100644
--- a/cmd/helm/install.go
+++ b/cmd/helm/install.go
@@ -482,7 +482,7 @@ func defaultNamespace() string {
 func checkDependencies(ch *chart.Chart, reqs *chartutil.Requirements) error {
 	missing := []string{}
 
-	deps := ch.GetDependencies()
+	deps := ch.Dependencies
 	for _, r := range reqs.Dependencies {
 		found := false
 		for _, d := range deps {
diff --git a/glide.lock b/glide.lock
index 76db4a2a129d6ff501ae29bc107db7bbd5e04643..2473bf4a5ee67f30b303d15fe07d227bd9dd7cf5 100644
--- a/glide.lock
+++ b/glide.lock
@@ -1,5 +1,5 @@
-hash: b78f3d1f316474c2afd90074058cb5b1b4eda432b7bc270e4b76141199387d37
-updated: 2018-04-16T23:16:59.971946077Z
+hash: f61bc9a14aff4543b59b89891e4ad0ae787a0ce0e6d775d02b8964e857d41aad
+updated: 2018-04-18T23:27:56.45176431Z
 imports:
 - name: cloud.google.com/go
   version: 3b1ae45394a234c385be014e9a488f2bb6eef821
diff --git a/glide.yaml b/glide.yaml
index 250015fb47cc6f47318313af012a74f9b2e03fc2..e96a51c1d10d385112376329bbb8a76c233cdbd6 100644
--- a/glide.yaml
+++ b/glide.yaml
@@ -15,12 +15,6 @@ import:
 - package: github.com/Masterminds/semver
   version: ~1.3.1
 - package: github.com/technosophos/moniker
-- package: github.com/golang/protobuf
-  version: 1643683e1b54a9e88ad26d98f81400c8c9d9f4f9
-  subpackages:
-  - proto
-  - ptypes/any
-  - ptypes/timestamp
 - package: github.com/gosuri/uitable
 - package: github.com/asaskevich/govalidator
   version: ^4.0.0
diff --git a/pkg/chartutil/chartfile_test.go b/pkg/chartutil/chartfile_test.go
old mode 100755
new mode 100644
diff --git a/pkg/chartutil/create.go b/pkg/chartutil/create.go
index 586df6378c3bd6c0021a8043fb1e0e6931388efc..3b2fe64ad2e22659ddddef0b3580fe4f9c6972e5 100644
--- a/pkg/chartutil/create.go
+++ b/pkg/chartutil/create.go
@@ -299,11 +299,11 @@ func CreateFrom(chartfile *chart.Metadata, dest string, src string) error {
 
 	schart.Metadata = chartfile
 
-	var updatedTemplates []*chart.Template
+	var updatedTemplates []*chart.File
 
 	for _, template := range schart.Templates {
 		newData := Transform(string(template.Data), "<CHARTNAME>", schart.Metadata.Name)
-		updatedTemplates = append(updatedTemplates, &chart.Template{Name: template.Name, Data: newData})
+		updatedTemplates = append(updatedTemplates, &chart.File{Name: template.Name, Data: newData})
 	}
 
 	schart.Templates = updatedTemplates
diff --git a/pkg/chartutil/files.go b/pkg/chartutil/files.go
index ced8ce15af5a17a778e9ea9fb7ec92d2b6d77e3b..ca149a5e71e96968e3533a456b6c823703adb6e5 100644
--- a/pkg/chartutil/files.go
+++ b/pkg/chartutil/files.go
@@ -22,11 +22,11 @@ import (
 	"path"
 	"strings"
 
-	"github.com/ghodss/yaml"
-
 	"github.com/BurntSushi/toml"
+	"github.com/ghodss/yaml"
 	"github.com/gobwas/glob"
-	"github.com/golang/protobuf/ptypes/any"
+
+	"k8s.io/helm/pkg/hapi/chart"
 )
 
 // Files is a map of files in a chart that can be accessed from a template.
@@ -34,12 +34,10 @@ type Files map[string][]byte
 
 // NewFiles creates a new Files from chart files.
 // Given an []*any.Any (the format for files in a chart.Chart), extract a map of files.
-func NewFiles(from []*any.Any) Files {
+func NewFiles(from []*chart.File) Files {
 	files := map[string][]byte{}
-	if from != nil {
-		for _, f := range from {
-			files[f.TypeUrl] = f.Value
-		}
+	for _, f := range from {
+		files[f.Name] = f.Data
 	}
 	return files
 }
diff --git a/pkg/chartutil/files_test.go b/pkg/chartutil/files_test.go
index 5cec358839b5aff48a80bf246ef2cb0b4eccb562..a6c9d1b65b0b87c1cf08db2c809d498e241980da 100644
--- a/pkg/chartutil/files_test.go
+++ b/pkg/chartutil/files_test.go
@@ -18,7 +18,6 @@ package chartutil
 import (
 	"testing"
 
-	"github.com/golang/protobuf/ptypes/any"
 	"github.com/stretchr/testify/assert"
 )
 
@@ -32,16 +31,16 @@ var cases = []struct {
 	{"multiline/test.txt", "bar\nfoo"},
 }
 
-func getTestFiles() []*any.Any {
-	a := []*any.Any{}
+func getTestFiles() Files {
+	a := make(Files, len(cases))
 	for _, c := range cases {
-		a = append(a, &any.Any{TypeUrl: c.path, Value: []byte(c.data)})
+		a[c.path] = []byte(c.data)
 	}
 	return a
 }
 
 func TestNewFiles(t *testing.T) {
-	files := NewFiles(getTestFiles())
+	files := getTestFiles()
 	if len(files) != len(cases) {
 		t.Errorf("Expected len() = %d, got %d", len(cases), len(files))
 	}
@@ -59,7 +58,7 @@ func TestNewFiles(t *testing.T) {
 func TestFileGlob(t *testing.T) {
 	as := assert.New(t)
 
-	f := NewFiles(getTestFiles())
+	f := getTestFiles()
 
 	matched := f.Glob("story/**")
 
@@ -70,7 +69,7 @@ func TestFileGlob(t *testing.T) {
 func TestToConfig(t *testing.T) {
 	as := assert.New(t)
 
-	f := NewFiles(getTestFiles())
+	f := getTestFiles()
 	out := f.Glob("**/captain.txt").AsConfig()
 	as.Equal("captain.txt: The Captain", out)
 
@@ -81,7 +80,7 @@ func TestToConfig(t *testing.T) {
 func TestToSecret(t *testing.T) {
 	as := assert.New(t)
 
-	f := NewFiles(getTestFiles())
+	f := getTestFiles()
 
 	out := f.Glob("ship/**").AsSecrets()
 	as.Equal("captain.txt: VGhlIENhcHRhaW4=\nstowaway.txt: TGVnYXR0", out)
@@ -90,7 +89,7 @@ func TestToSecret(t *testing.T) {
 func TestLines(t *testing.T) {
 	as := assert.New(t)
 
-	f := NewFiles(getTestFiles())
+	f := getTestFiles()
 
 	out := f.Lines("multiline/test.txt")
 	as.Len(out, 2)
diff --git a/pkg/chartutil/load.go b/pkg/chartutil/load.go
index 1f8f33485e8e318a94c1c8386f1e9608eef5b04d..28514cf1e31430dafa29307a3d7eba633ca18d0e 100644
--- a/pkg/chartutil/load.go
+++ b/pkg/chartutil/load.go
@@ -28,8 +28,6 @@ import (
 	"path/filepath"
 	"strings"
 
-	"github.com/golang/protobuf/ptypes/any"
-
 	"k8s.io/helm/pkg/hapi/chart"
 	"k8s.io/helm/pkg/ignore"
 	"k8s.io/helm/pkg/sympath"
@@ -136,10 +134,10 @@ func LoadFiles(files []*BufferedFile) (*chart.Chart, error) {
 		} else if f.Name == "values.yaml" {
 			c.Values = &chart.Config{Raw: string(f.Data)}
 		} else if strings.HasPrefix(f.Name, "templates/") {
-			c.Templates = append(c.Templates, &chart.Template{Name: f.Name, Data: f.Data})
+			c.Templates = append(c.Templates, &chart.File{Name: f.Name, Data: f.Data})
 		} else if strings.HasPrefix(f.Name, "charts/") {
 			if filepath.Ext(f.Name) == ".prov" {
-				c.Files = append(c.Files, &any.Any{TypeUrl: f.Name, Value: f.Data})
+				c.Files = append(c.Files, &chart.File{Name: f.Name, Data: f.Data})
 				continue
 			}
 			cname := strings.TrimPrefix(f.Name, "charts/")
@@ -151,7 +149,7 @@ func LoadFiles(files []*BufferedFile) (*chart.Chart, error) {
 			scname := parts[0]
 			subcharts[scname] = append(subcharts[scname], &BufferedFile{Name: cname, Data: f.Data})
 		} else {
-			c.Files = append(c.Files, &any.Any{TypeUrl: f.Name, Value: f.Data})
+			c.Files = append(c.Files, &chart.File{Name: f.Name, Data: f.Data})
 		}
 	}
 
diff --git a/pkg/chartutil/load_test.go b/pkg/chartutil/load_test.go
index 968c7e73cfd0271811c6f5d8f969f402d7b34b87..da689fa6fab88686dc19220b4f44015304b554d6 100644
--- a/pkg/chartutil/load_test.go
+++ b/pkg/chartutil/load_test.go
@@ -97,27 +97,13 @@ icon: https://example.com/64x64.png
 		t.Errorf("Expected number of templates == 2, got %d", len(c.Templates))
 	}
 
-	c, err = LoadFiles([]*BufferedFile{})
+	_, err = LoadFiles([]*BufferedFile{})
 	if err == nil {
 		t.Fatal("Expected err to be non-nil")
 	}
 	if err.Error() != "chart metadata (Chart.yaml) missing" {
 		t.Errorf("Expected chart metadata missing error, got '%s'", err.Error())
 	}
-
-	// legacy check
-	c, err = LoadFiles([]*BufferedFile{
-		{
-			Name: "values.toml",
-			Data: []byte{},
-		},
-	})
-	if err == nil {
-		t.Fatal("Expected err to be non-nil")
-	}
-	if err.Error() != "values.toml is illegal as of 2.0.0-alpha.2" {
-		t.Errorf("Expected values.toml to be illegal, got '%s'", err.Error())
-	}
 }
 
 // Packaging the chart on a Windows machine will produce an
@@ -145,7 +131,7 @@ func verifyChart(t *testing.T, c *chart.Chart) {
 	if len(c.Files) != numfiles {
 		t.Errorf("Expected %d extra files, got %d", numfiles, len(c.Files))
 		for _, n := range c.Files {
-			t.Logf("\t%s", n.TypeUrl)
+			t.Logf("\t%s", n.Name)
 		}
 	}
 
diff --git a/pkg/chartutil/requirements.go b/pkg/chartutil/requirements.go
index 764f99b356623cee97ad442a5c8d2d9c05e4ba0f..37743443e7da24fb682e93e0127e3caa089e63c8 100644
--- a/pkg/chartutil/requirements.go
+++ b/pkg/chartutil/requirements.go
@@ -98,8 +98,8 @@ type RequirementsLock struct {
 func LoadRequirements(c *chart.Chart) (*Requirements, error) {
 	var data []byte
 	for _, f := range c.Files {
-		if f.TypeUrl == requirementsName {
-			data = f.Value
+		if f.Name == requirementsName {
+			data = f.Data
 		}
 	}
 	if len(data) == 0 {
@@ -113,8 +113,8 @@ func LoadRequirements(c *chart.Chart) (*Requirements, error) {
 func LoadRequirementsLock(c *chart.Chart) (*RequirementsLock, error) {
 	var data []byte
 	for _, f := range c.Files {
-		if f.TypeUrl == lockfileName {
-			data = f.Value
+		if f.Name == lockfileName {
+			data = f.Data
 		}
 	}
 	if len(data) == 0 {
@@ -392,7 +392,7 @@ func processImportValues(c *chart.Chart) error {
 	if err != nil {
 		return err
 	}
-	b := make(map[string]interface{}, 0)
+	b := make(map[string]interface{})
 	// import values from each dependency if specified in import-values
 	for _, r := range reqs.Dependencies {
 		if len(r.ImportValues) > 0 {
diff --git a/pkg/chartutil/requirements_test.go b/pkg/chartutil/requirements_test.go
index 5392cfb5565260d4551abdb584763464d7500683..11ff3fb4c7834622300c8037e713c52bd0187659 100644
--- a/pkg/chartutil/requirements_test.go
+++ b/pkg/chartutil/requirements_test.go
@@ -287,7 +287,7 @@ func verifyRequirementsImportValues(t *testing.T, c *chart.Chart, v *chart.Confi
 	if err != nil {
 		t.Errorf("Error processing import values requirements %v", err)
 	}
-	cv := c.GetValues()
+	cv := c.Values
 	cc, err := ReadValues([]byte(cv.Raw))
 	if err != nil {
 		t.Errorf("Error reading import values %v", err)
diff --git a/pkg/chartutil/save.go b/pkg/chartutil/save.go
index 082fe9f0e44d173a41e9cd7b63aaca24c33f5464..3316c85a6ee265707f1373ccc15259dd71f65804 100644
--- a/pkg/chartutil/save.go
+++ b/pkg/chartutil/save.go
@@ -69,14 +69,14 @@ func SaveDir(c *chart.Chart, dest string) error {
 
 	// Save files
 	for _, f := range c.Files {
-		n := filepath.Join(outdir, f.TypeUrl)
+		n := filepath.Join(outdir, f.Name)
 
 		d := filepath.Dir(n)
 		if err := os.MkdirAll(d, 0755); err != nil {
 			return err
 		}
 
-		if err := ioutil.WriteFile(n, f.Value, 0755); err != nil {
+		if err := ioutil.WriteFile(n, f.Data, 0755); err != nil {
 			return err
 		}
 	}
@@ -186,8 +186,8 @@ func writeTarContents(out *tar.Writer, c *chart.Chart, prefix string) error {
 
 	// Save files
 	for _, f := range c.Files {
-		n := filepath.Join(base, f.TypeUrl)
-		if err := writeToTar(out, n, f.Value); err != nil {
+		n := filepath.Join(base, f.Name)
+		if err := writeToTar(out, n, f.Data); err != nil {
 			return err
 		}
 	}
diff --git a/pkg/chartutil/save_test.go b/pkg/chartutil/save_test.go
index 3db77d38c0d05742e0ef35a55852fef3c9fdc577..153452fcad6f791955dd6e9ca56d841718fb3a06 100644
--- a/pkg/chartutil/save_test.go
+++ b/pkg/chartutil/save_test.go
@@ -22,8 +22,6 @@ import (
 	"strings"
 	"testing"
 
-	"github.com/golang/protobuf/ptypes/any"
-
 	"k8s.io/helm/pkg/hapi/chart"
 )
 
@@ -42,8 +40,8 @@ func TestSave(t *testing.T) {
 		Values: &chart.Config{
 			Raw: "ship: Pequod",
 		},
-		Files: []*any.Any{
-			{TypeUrl: "scheherazade/shahryar.txt", Value: []byte("1,001 Nights")},
+		Files: []*chart.File{
+			{Name: "scheherazade/shahryar.txt", Data: []byte("1,001 Nights")},
 		},
 	}
 
@@ -69,7 +67,7 @@ func TestSave(t *testing.T) {
 	if c2.Values.Raw != c.Values.Raw {
 		t.Fatal("Values data did not match")
 	}
-	if len(c2.Files) != 1 || c2.Files[0].TypeUrl != "scheherazade/shahryar.txt" {
+	if len(c2.Files) != 1 || c2.Files[0].Name != "scheherazade/shahryar.txt" {
 		t.Fatal("Files data did not match")
 	}
 }
@@ -89,8 +87,8 @@ func TestSaveDir(t *testing.T) {
 		Values: &chart.Config{
 			Raw: "ship: Pequod",
 		},
-		Files: []*any.Any{
-			{TypeUrl: "scheherazade/shahryar.txt", Value: []byte("1,001 Nights")},
+		Files: []*chart.File{
+			{Name: "scheherazade/shahryar.txt", Data: []byte("1,001 Nights")},
 		},
 	}
 
@@ -109,7 +107,7 @@ func TestSaveDir(t *testing.T) {
 	if c2.Values.Raw != c.Values.Raw {
 		t.Fatal("Values data did not match")
 	}
-	if len(c2.Files) != 1 || c2.Files[0].TypeUrl != "scheherazade/shahryar.txt" {
+	if len(c2.Files) != 1 || c2.Files[0].Name != "scheherazade/shahryar.txt" {
 		t.Fatal("Files data did not match")
 	}
 }
diff --git a/pkg/chartutil/values.go b/pkg/chartutil/values.go
index 18c5dd14a5b2b67ca0f1b8d081682d35f4fc4e68..7f131c1b3369750f72180c11b4abd490cb837396 100644
--- a/pkg/chartutil/values.go
+++ b/pkg/chartutil/values.go
@@ -417,8 +417,7 @@ func (v Values) PathValue(ypath string) (interface{}, error) {
 	table := yps[:ypsLen-1]
 	st := strings.Join(table, ".")
 	// get the last element as a string key
-	key := yps[ypsLen-1:]
-	sk := string(key[0])
+	sk := yps[ypsLen-1:][0]
 	// get our table for table path
 	t, err := v.Table(st)
 	if err != nil {
diff --git a/pkg/chartutil/values_test.go b/pkg/chartutil/values_test.go
index dede0f00f215a863aea4d95709b8fc8274ec7791..b5e77bbd7ad05769755d2235ed09123e4ab160a4 100644
--- a/pkg/chartutil/values_test.go
+++ b/pkg/chartutil/values_test.go
@@ -24,8 +24,6 @@ import (
 	"text/template"
 	"time"
 
-	"github.com/golang/protobuf/ptypes/any"
-
 	kversion "k8s.io/apimachinery/pkg/version"
 
 	"k8s.io/helm/pkg/hapi/chart"
@@ -90,7 +88,7 @@ where:
 
 	c := &chart.Chart{
 		Metadata:  &chart.Metadata{Name: "test"},
-		Templates: []*chart.Template{},
+		Templates: []*chart.File{},
 		Values:    &chart.Config{Raw: chartValues},
 		Dependencies: []*chart.Chart{
 			{
@@ -98,8 +96,8 @@ where:
 				Values:   &chart.Config{Raw: ""},
 			},
 		},
-		Files: []*any.Any{
-			{TypeUrl: "scheherazade/shahryar.txt", Value: []byte("1,001 Nights")},
+		Files: []*chart.File{
+			{Name: "scheherazade/shahryar.txt", Data: []byte("1,001 Nights")},
 		},
 	}
 	v := &chart.Config{Raw: overideValues}
@@ -153,9 +151,7 @@ where:
 		t.Error("Expected Capabilities to have a Kube version")
 	}
 
-	var vals Values
-	vals = res["Values"].(Values)
-
+	vals := res["Values"].(Values)
 	if vals["name"] != "Haroun" {
 		t.Errorf("Expected 'Haroun', got %q (%v)", vals["name"], vals)
 	}
diff --git a/pkg/engine/engine_test.go b/pkg/engine/engine_test.go
index d11944dd6b97ee831f62320b5fe3553836b1aa49..956357cde297e39057d83194779d10461650c380 100644
--- a/pkg/engine/engine_test.go
+++ b/pkg/engine/engine_test.go
@@ -23,8 +23,6 @@ import (
 
 	"k8s.io/helm/pkg/chartutil"
 	"k8s.io/helm/pkg/hapi/chart"
-
-	"github.com/golang/protobuf/ptypes/any"
 )
 
 func TestSortTemplates(t *testing.T) {
@@ -94,7 +92,7 @@ func TestRender(t *testing.T) {
 			Name:    "moby",
 			Version: "1.2.3",
 		},
-		Templates: []*chart.Template{
+		Templates: []*chart.File{
 			{Name: "templates/test1", Data: []byte("{{.outer | title }} {{.inner | title}}")},
 			{Name: "templates/test2", Data: []byte("{{.global.callme | lower }}")},
 			{Name: "templates/test3", Data: []byte("{{.noValue}}")},
@@ -203,20 +201,20 @@ func TestParallelRenderInternals(t *testing.T) {
 func TestAllTemplates(t *testing.T) {
 	ch1 := &chart.Chart{
 		Metadata: &chart.Metadata{Name: "ch1"},
-		Templates: []*chart.Template{
+		Templates: []*chart.File{
 			{Name: "templates/foo", Data: []byte("foo")},
 			{Name: "templates/bar", Data: []byte("bar")},
 		},
 		Dependencies: []*chart.Chart{
 			{
 				Metadata: &chart.Metadata{Name: "laboratory mice"},
-				Templates: []*chart.Template{
+				Templates: []*chart.File{
 					{Name: "templates/pinky", Data: []byte("pinky")},
 					{Name: "templates/brain", Data: []byte("brain")},
 				},
 				Dependencies: []*chart.Chart{{
 					Metadata: &chart.Metadata{Name: "same thing we do every night"},
-					Templates: []*chart.Template{
+					Templates: []*chart.File{
 						{Name: "templates/innermost", Data: []byte("innermost")},
 					}},
 				},
@@ -237,13 +235,13 @@ func TestRenderDependency(t *testing.T) {
 	toptpl := `Hello {{template "myblock"}}`
 	ch := &chart.Chart{
 		Metadata: &chart.Metadata{Name: "outerchart"},
-		Templates: []*chart.Template{
+		Templates: []*chart.File{
 			{Name: "templates/outer", Data: []byte(toptpl)},
 		},
 		Dependencies: []*chart.Chart{
 			{
 				Metadata: &chart.Metadata{Name: "innerchart"},
-				Templates: []*chart.Template{
+				Templates: []*chart.File{
 					{Name: "templates/inner", Data: []byte(deptpl)},
 				},
 			},
@@ -278,7 +276,7 @@ func TestRenderNestedValues(t *testing.T) {
 
 	deepest := &chart.Chart{
 		Metadata: &chart.Metadata{Name: "deepest"},
-		Templates: []*chart.Template{
+		Templates: []*chart.File{
 			{Name: deepestpath, Data: []byte(`And this same {{.Values.what}} that smiles {{.Values.global.when}}`)},
 			{Name: checkrelease, Data: []byte(`Tomorrow will be {{default "happy" .Release.Name }}`)},
 		},
@@ -287,7 +285,7 @@ func TestRenderNestedValues(t *testing.T) {
 
 	inner := &chart.Chart{
 		Metadata: &chart.Metadata{Name: "herrick"},
-		Templates: []*chart.Template{
+		Templates: []*chart.File{
 			{Name: innerpath, Data: []byte(`Old {{.Values.who}} is still a-flyin'`)},
 		},
 		Values:       &chart.Config{Raw: `who: "Robert"`},
@@ -296,7 +294,7 @@ func TestRenderNestedValues(t *testing.T) {
 
 	outer := &chart.Chart{
 		Metadata: &chart.Metadata{Name: "top"},
-		Templates: []*chart.Template{
+		Templates: []*chart.File{
 			{Name: outerpath, Data: []byte(`Gather ye {{.Values.what}} while ye may`)},
 		},
 		Values: &chart.Config{
@@ -363,21 +361,21 @@ global:
 func TestRenderBuiltinValues(t *testing.T) {
 	inner := &chart.Chart{
 		Metadata: &chart.Metadata{Name: "Latium"},
-		Templates: []*chart.Template{
+		Templates: []*chart.File{
 			{Name: "templates/Lavinia", Data: []byte(`{{.Template.Name}}{{.Chart.Name}}{{.Release.Name}}`)},
 			{Name: "templates/From", Data: []byte(`{{.Files.author | printf "%s"}} {{.Files.Get "book/title.txt"}}`)},
 		},
 		Values:       &chart.Config{Raw: ``},
 		Dependencies: []*chart.Chart{},
-		Files: []*any.Any{
-			{TypeUrl: "author", Value: []byte("Virgil")},
-			{TypeUrl: "book/title.txt", Value: []byte("Aeneid")},
+		Files: []*chart.File{
+			{Name: "author", Data: []byte("Virgil")},
+			{Name: "book/title.txt", Data: []byte("Aeneid")},
 		},
 	}
 
 	outer := &chart.Chart{
 		Metadata: &chart.Metadata{Name: "Troy"},
-		Templates: []*chart.Template{
+		Templates: []*chart.File{
 			{Name: "templates/Aeneas", Data: []byte(`{{.Template.Name}}{{.Chart.Name}}{{.Release.Name}}`)},
 		},
 		Values:       &chart.Config{Raw: ``},
@@ -415,7 +413,7 @@ func TestRenderBuiltinValues(t *testing.T) {
 func TestAlterFuncMap(t *testing.T) {
 	c := &chart.Chart{
 		Metadata: &chart.Metadata{Name: "conrad"},
-		Templates: []*chart.Template{
+		Templates: []*chart.File{
 			{Name: "templates/quote", Data: []byte(`{{include "conrad/templates/_partial" . | indent 2}} dead.`)},
 			{Name: "templates/_partial", Data: []byte(`{{.Release.Name}} - he`)},
 		},
@@ -443,7 +441,7 @@ func TestAlterFuncMap(t *testing.T) {
 
 	reqChart := &chart.Chart{
 		Metadata: &chart.Metadata{Name: "conan"},
-		Templates: []*chart.Template{
+		Templates: []*chart.File{
 			{Name: "templates/quote", Data: []byte(`All your base are belong to {{ required "A valid 'who' is required" .Values.who }}`)},
 			{Name: "templates/bases", Data: []byte(`All {{ required "A valid 'bases' is required" .Values.bases }} of them!`)},
 		},
@@ -478,7 +476,7 @@ func TestAlterFuncMap(t *testing.T) {
 
 	tplChart := &chart.Chart{
 		Metadata: &chart.Metadata{Name: "TplFunction"},
-		Templates: []*chart.Template{
+		Templates: []*chart.File{
 			{Name: "templates/base", Data: []byte(`Evaluate tpl {{tpl "Value: {{ .Values.value}}" .}}`)},
 		},
 		Values:       &chart.Config{Raw: ``},
@@ -507,7 +505,7 @@ func TestAlterFuncMap(t *testing.T) {
 
 	tplChartWithFunction := &chart.Chart{
 		Metadata: &chart.Metadata{Name: "TplFunction"},
-		Templates: []*chart.Template{
+		Templates: []*chart.File{
 			{Name: "templates/base", Data: []byte(`Evaluate tpl {{tpl "Value: {{ .Values.value | quote}}" .}}`)},
 		},
 		Values:       &chart.Config{Raw: ``},
@@ -536,7 +534,7 @@ func TestAlterFuncMap(t *testing.T) {
 
 	tplChartWithInclude := &chart.Chart{
 		Metadata: &chart.Metadata{Name: "TplFunction"},
-		Templates: []*chart.Template{
+		Templates: []*chart.File{
 			{Name: "templates/base", Data: []byte(`{{ tpl "{{include ` + "`" + `TplFunction/templates/_partial` + "`" + ` .  | quote }}" .}}`)},
 			{Name: "templates/_partial", Data: []byte(`{{.Template.Name}}`)},
 		},
diff --git a/pkg/hapi/chart/chart.go b/pkg/hapi/chart/chart.go
index a11b635306b7fe09bbf1e49a8daeffe3194db81f..9fac5644173f4caf2d21e0b33ade3e3a38221114 100644
--- a/pkg/hapi/chart/chart.go
+++ b/pkg/hapi/chart/chart.go
@@ -1,54 +1,17 @@
 package chart
 
-import google_protobuf "github.com/golang/protobuf/ptypes/any"
-
 // 	Chart is a helm package that contains metadata, a default config, zero or more
 // 	optionally parameterizable templates, and zero or more charts (dependencies).
 type Chart struct {
 	// Contents of the Chartfile.
 	Metadata *Metadata `json:"metadata,omitempty"`
 	// Templates for this chart.
-	Templates []*Template `json:"templates,omitempty"`
+	Templates []*File `json:"templates,omitempty"`
 	// Charts that this chart depends on.
 	Dependencies []*Chart `json:"dependencies,omitempty"`
 	// Default config for this template.
 	Values *Config `json:"values,omitempty"`
 	// Miscellaneous files in a chart archive,
 	// e.g. README, LICENSE, etc.
-	Files []*google_protobuf.Any `json:"files,omitempty"`
-}
-
-func (m *Chart) GetMetadata() *Metadata {
-	if m != nil {
-		return m.Metadata
-	}
-	return nil
-}
-
-func (m *Chart) GetTemplates() []*Template {
-	if m != nil {
-		return m.Templates
-	}
-	return nil
-}
-
-func (m *Chart) GetDependencies() []*Chart {
-	if m != nil {
-		return m.Dependencies
-	}
-	return nil
-}
-
-func (m *Chart) GetValues() *Config {
-	if m != nil {
-		return m.Values
-	}
-	return nil
-}
-
-func (m *Chart) GetFiles() []*google_protobuf.Any {
-	if m != nil {
-		return m.Files
-	}
-	return nil
+	Files []*File `json:"files,omitempty"`
 }
diff --git a/pkg/hapi/chart/template.go b/pkg/hapi/chart/template.go
index 95b8ff3d1ebdae45ce19fbc9028e2b61ee97a135..1f80f00f625344100da36347b31bc41c681a1811 100644
--- a/pkg/hapi/chart/template.go
+++ b/pkg/hapi/chart/template.go
@@ -1,26 +1,12 @@
 package chart
 
-// Template represents a template as a name/value pair.
+// File represents a file as a name/value pair.
 //
 // By convention, name is a relative path within the scope of the chart's
 // base directory.
-type Template struct {
+type File struct {
 	// Name is the path-like name of the template.
 	Name string `json:"name,omitempty"`
 	// Data is the template as byte data.
 	Data []byte `json:"data,omitempty"`
 }
-
-func (m *Template) GetName() string {
-	if m != nil {
-		return m.Name
-	}
-	return ""
-}
-
-func (m *Template) GetData() []byte {
-	if m != nil {
-		return m.Data
-	}
-	return nil
-}
diff --git a/pkg/helm/fake.go b/pkg/helm/fake.go
index a84c9464d897750a50249acf60f91750065ce37b..36618d4fd3874cb8209cf23425fd9adff355d0e9 100644
--- a/pkg/helm/fake.go
+++ b/pkg/helm/fake.go
@@ -211,7 +211,7 @@ func ReleaseMock(opts *MockReleaseOptions) *release.Release {
 				Name:    "foo",
 				Version: "0.1.0-beta.1",
 			},
-			Templates: []*chart.Template{
+			Templates: []*chart.File{
 				{Name: "templates/foo.tpl", Data: []byte(MockManifest)},
 			},
 		}
diff --git a/pkg/lint/rules/template.go b/pkg/lint/rules/template.go
index e08c99fbdcbcedc261eb70db2bdd367ef84b8948..c42d7f2a9b0d68d81e3b7c40cf78ffb28ff667ba 100644
--- a/pkg/lint/rules/template.go
+++ b/pkg/lint/rules/template.go
@@ -113,7 +113,7 @@ func Templates(linter *support.Linter, values []byte, namespace string, strict b
 		// NOTE: disabled for now, Refs https://github.com/kubernetes/helm/issues/1037
 		// linter.RunLinterRule(support.WarningSev, path, validateQuotes(string(preExecutedTemplate)))
 
-		renderedContent := renderedContentMap[filepath.Join(chart.GetMetadata().Name, fileName)]
+		renderedContent := renderedContentMap[filepath.Join(chart.Metadata.Name, fileName)]
 		var yamlStruct K8sYamlStruct
 		// Even though K8sYamlStruct only defines Metadata namespace, an error in any other
 		// key will be raised as well
diff --git a/pkg/releasetesting/test_suite_test.go b/pkg/releasetesting/test_suite_test.go
index 324c8afa25f5f0bd7ab771c0f8ea91f7625c78f3..750cb0deea136200b57103f692a421e5a544fe6d 100644
--- a/pkg/releasetesting/test_suite_test.go
+++ b/pkg/releasetesting/test_suite_test.go
@@ -217,7 +217,7 @@ func chartStub() *chart.Chart {
 		Metadata: &chart.Metadata{
 			Name: "nemo",
 		},
-		Templates: []*chart.Template{
+		Templates: []*chart.File{
 			{Name: "templates/hello", Data: []byte("hello: world")},
 			{Name: "templates/hooks", Data: []byte(manifestWithTestSuccessHook)},
 		},
diff --git a/pkg/tiller/release_server.go b/pkg/tiller/release_server.go
index a5f2b2cdde2695fa83a03925f2baaed6c76f87f1..2e5937c055913a2abc3b30d9035a528c798e0476 100644
--- a/pkg/tiller/release_server.go
+++ b/pkg/tiller/release_server.go
@@ -267,7 +267,7 @@ func (s *ReleaseServer) renderResources(ch *chart.Chart, values chartutil.Values
 		}
 	}
 
-	s.Log("rendering %s chart using values", ch.GetMetadata().Name)
+	s.Log("rendering %s chart using values", ch.Metadata.Name)
 	renderer := s.engine(ch)
 	files, err := renderer.Render(ch, values)
 	if err != nil {
diff --git a/pkg/tiller/release_server_test.go b/pkg/tiller/release_server_test.go
index 20baf40b43bc011c3273a0065a9bb735b71735af..bdc108eaa498226168ba4339aa3e43f56b3c915c 100644
--- a/pkg/tiller/release_server_test.go
+++ b/pkg/tiller/release_server_test.go
@@ -112,7 +112,7 @@ func buildChart(opts ...chartOption) *chart.Chart {
 				Name: "hello",
 			},
 			// This adds a basic template and hooks.
-			Templates: []*chart.Template{
+			Templates: []*chart.File{
 				{Name: "templates/hello", Data: []byte("hello: world")},
 				{Name: "templates/hooks", Data: []byte(manifestWithHook)},
 			},
@@ -140,7 +140,7 @@ func withDependency(dependencyOpts ...chartOption) chartOption {
 
 func withNotes(notes string) chartOption {
 	return func(opts *chartOptions) {
-		opts.Templates = append(opts.Templates, &chart.Template{
+		opts.Templates = append(opts.Templates, &chart.File{
 			Name: "templates/NOTES.txt",
 			Data: []byte(notes),
 		})
@@ -149,7 +149,7 @@ func withNotes(notes string) chartOption {
 
 func withSampleTemplates() chartOption {
 	return func(opts *chartOptions) {
-		sampleTemplates := []*chart.Template{
+		sampleTemplates := []*chart.File{
 			// This adds basic templates and partials.
 			{Name: "templates/goodbye", Data: []byte("goodbye: world")},
 			{Name: "templates/empty", Data: []byte("")},
@@ -361,7 +361,7 @@ func releaseWithKeepStub(rlsName string) *release.Release {
 		Metadata: &chart.Metadata{
 			Name: "bunnychart",
 		},
-		Templates: []*chart.Template{
+		Templates: []*chart.File{
 			{Name: "templates/configmap", Data: []byte(manifestWithKeep)},
 		},
 	}
diff --git a/pkg/tiller/release_update_test.go b/pkg/tiller/release_update_test.go
index aafa0912b92c72eb3d79c1dae7b566fd3aae4274..30f01320421c09b6289381bad799cc7f3abb28d2 100644
--- a/pkg/tiller/release_update_test.go
+++ b/pkg/tiller/release_update_test.go
@@ -36,7 +36,7 @@ func TestUpdateRelease(t *testing.T) {
 		Name: rel.Name,
 		Chart: &chart.Chart{
 			Metadata: &chart.Metadata{Name: "hello"},
-			Templates: []*chart.Template{
+			Templates: []*chart.File{
 				{Name: "templates/hello", Data: []byte("hello: world")},
 				{Name: "templates/hooks", Data: []byte(manifestWithUpgradeHooks)},
 			},
@@ -108,7 +108,7 @@ func TestUpdateRelease_ResetValues(t *testing.T) {
 		Name: rel.Name,
 		Chart: &chart.Chart{
 			Metadata: &chart.Metadata{Name: "hello"},
-			Templates: []*chart.Template{
+			Templates: []*chart.File{
 				{Name: "templates/hello", Data: []byte("hello: world")},
 				{Name: "templates/hooks", Data: []byte(manifestWithUpgradeHooks)},
 			},
@@ -133,7 +133,7 @@ func TestUpdateRelease_ComplexReuseValues(t *testing.T) {
 		Namespace: "spaced",
 		Chart: &chart.Chart{
 			Metadata: &chart.Metadata{Name: "hello"},
-			Templates: []*chart.Template{
+			Templates: []*chart.File{
 				{Name: "templates/hello", Data: []byte("hello: world")},
 				{Name: "templates/hooks", Data: []byte(manifestWithHook)},
 			},
@@ -153,7 +153,7 @@ func TestUpdateRelease_ComplexReuseValues(t *testing.T) {
 		Name: rel.Name,
 		Chart: &chart.Chart{
 			Metadata: &chart.Metadata{Name: "hello"},
-			Templates: []*chart.Template{
+			Templates: []*chart.File{
 				{Name: "templates/hello", Data: []byte("hello: world")},
 				{Name: "templates/hooks", Data: []byte(manifestWithUpgradeHooks)},
 			},
@@ -177,7 +177,7 @@ func TestUpdateRelease_ComplexReuseValues(t *testing.T) {
 		Name: rel.Name,
 		Chart: &chart.Chart{
 			Metadata: &chart.Metadata{Name: "hello"},
-			Templates: []*chart.Template{
+			Templates: []*chart.File{
 				{Name: "templates/hello", Data: []byte("hello: world")},
 				{Name: "templates/hooks", Data: []byte(manifestWithUpgradeHooks)},
 			},
@@ -203,7 +203,7 @@ func TestUpdateRelease_ComplexReuseValues(t *testing.T) {
 		Name: rel.Name,
 		Chart: &chart.Chart{
 			Metadata: &chart.Metadata{Name: "hello"},
-			Templates: []*chart.Template{
+			Templates: []*chart.File{
 				{Name: "templates/hello", Data: []byte("hello: world")},
 				{Name: "templates/hooks", Data: []byte(manifestWithUpgradeHooks)},
 			},
@@ -233,7 +233,7 @@ func TestUpdateRelease_ReuseValues(t *testing.T) {
 		Name: rel.Name,
 		Chart: &chart.Chart{
 			Metadata: &chart.Metadata{Name: "hello"},
-			Templates: []*chart.Template{
+			Templates: []*chart.File{
 				{Name: "templates/hello", Data: []byte("hello: world")},
 				{Name: "templates/hooks", Data: []byte(manifestWithUpgradeHooks)},
 			},
@@ -270,7 +270,7 @@ func TestUpdateRelease_ResetReuseValues(t *testing.T) {
 		Name: rel.Name,
 		Chart: &chart.Chart{
 			Metadata: &chart.Metadata{Name: "hello"},
-			Templates: []*chart.Template{
+			Templates: []*chart.File{
 				{Name: "templates/hello", Data: []byte("hello: world")},
 				{Name: "templates/hooks", Data: []byte(manifestWithUpgradeHooks)},
 			},
@@ -301,7 +301,7 @@ func TestUpdateReleaseFailure(t *testing.T) {
 		DisableHooks: true,
 		Chart: &chart.Chart{
 			Metadata: &chart.Metadata{Name: "hello"},
-			Templates: []*chart.Template{
+			Templates: []*chart.File{
 				{Name: "templates/something", Data: []byte("hello: world")},
 			},
 		},
@@ -343,7 +343,7 @@ func TestUpdateReleaseFailure_Force(t *testing.T) {
 		DisableHooks: true,
 		Chart: &chart.Chart{
 			Metadata: &chart.Metadata{Name: "hello"},
-			Templates: []*chart.Template{
+			Templates: []*chart.File{
 				{Name: "templates/something", Data: []byte("text: 'Did you ever hear the tragedy of Darth Plagueis the Wise? I thought not. It’s not a story the Jedi would tell you. It’s a Sith legend. Darth Plagueis was a Dark Lord of the Sith, so powerful and so wise he could use the Force to influence the Midichlorians to create life... He had such a knowledge of the Dark Side that he could even keep the ones he cared about from dying. The Dark Side of the Force is a pathway to many abilities some consider to be unnatural. He became so powerful... The only thing he was afraid of was losing his power, which eventually, of course, he did. Unfortunately, he taught his apprentice everything he knew, then his apprentice killed him in his sleep. Ironic. He could save others from death, but not himself.'")},
 			},
 		},
@@ -385,7 +385,7 @@ func TestUpdateReleaseNoHooks(t *testing.T) {
 		DisableHooks: true,
 		Chart: &chart.Chart{
 			Metadata: &chart.Metadata{Name: "hello"},
-			Templates: []*chart.Template{
+			Templates: []*chart.File{
 				{Name: "templates/hello", Data: []byte("hello: world")},
 				{Name: "templates/hooks", Data: []byte(manifestWithUpgradeHooks)},
 			},