making the fs property accessible Afero.fs -> Afero.Fs
diff --git a/afero.go b/afero.go
index 9e5fa3c..e3df3f4 100644
--- a/afero.go
+++ b/afero.go
@@ -30,7 +30,7 @@
 )
 
 type Afero struct {
-	fs Fs
+	Fs
 }
 
 // File represents a file in the filesystem.
diff --git a/ioutil.go b/ioutil.go
index 793e5c4..5c3a3d8 100644
--- a/ioutil.go
+++ b/ioutil.go
@@ -36,7 +36,7 @@
 // ReadDir reads the directory named by dirname and returns
 // a list of sorted directory entries.
 func (a Afero) ReadDir(dirname string) ([]os.FileInfo, error) {
-	return ReadDir(a.fs, dirname)
+	return ReadDir(a.Fs, dirname)
 }
 
 func ReadDir(fs Fs, dirname string) ([]os.FileInfo, error) {
@@ -58,7 +58,7 @@
 // reads the whole file, it does not treat an EOF from Read as an error
 // to be reported.
 func (a Afero) ReadFile(filename string) ([]byte, error) {
-	return ReadFile(a.fs, filename)
+	return ReadFile(a.Fs, filename)
 }
 
 func ReadFile(fs Fs, filename string) ([]byte, error) {
@@ -118,7 +118,7 @@
 // If the file does not exist, WriteFile creates it with permissions perm;
 // otherwise WriteFile truncates it before writing.
 func (a Afero) WriteFile(filename string, data []byte, perm os.FileMode) error {
-	return WriteFile(a.fs, filename, data, perm)
+	return WriteFile(a.Fs, filename, data, perm)
 }
 
 func WriteFile(fs Fs, filename string, data []byte, perm os.FileMode) error {
@@ -169,7 +169,7 @@
 // to find the pathname of the file.  It is the caller's responsibility
 // to remove the file when no longer needed.
 func (a Afero) TempFile(dir, prefix string) (f File, err error) {
-	return TempFile(a.fs, dir, prefix)
+	return TempFile(a.Fs, dir, prefix)
 }
 
 func TempFile(fs Fs, dir, prefix string) (f File, err error) {
@@ -202,7 +202,7 @@
 // will not choose the same directory.  It is the caller's responsibility
 // to remove the directory when no longer needed.
 func (a Afero) TempDir(dir, prefix string) (name string, err error) {
-	return TempDir(a.fs, dir, prefix)
+	return TempDir(a.Fs, dir, prefix)
 }
 func TempDir(fs Fs, dir, prefix string) (name string, err error) {
 	if dir == "" {
diff --git a/ioutil_test.go b/ioutil_test.go
index 894687a..e7c9f06 100644
--- a/ioutil_test.go
+++ b/ioutil_test.go
@@ -29,7 +29,7 @@
 
 func TestReadFile(t *testing.T) {
 	testFS = &MemMapFs{}
-	fsutil := &Afero{fs: testFS}
+	fsutil := &Afero{Fs: testFS}
 
 	testFS.Create("this_exists.go")
 	filename := "rumpelstilzchen"
@@ -49,7 +49,7 @@
 
 func TestWriteFile(t *testing.T) {
 	testFS = &MemMapFs{}
-	fsutil := &Afero{fs: testFS}
+	fsutil := &Afero{Fs: testFS}
 	f, err := fsutil.TempFile("", "ioutil-test")
 	if err != nil {
 		t.Fatal(err)
diff --git a/path.go b/path.go
index 54c5579..1d90e46 100644
--- a/path.go
+++ b/path.go
@@ -96,7 +96,7 @@
 // Walk does not follow symbolic links.
 
 func (a Afero) Walk(root string, walkFn filepath.WalkFunc) error {
-	return Walk(a.fs, root, walkFn)
+	return Walk(a.Fs, root, walkFn)
 }
 
 func Walk(fs Fs, root string, walkFn filepath.WalkFunc) error {
diff --git a/util.go b/util.go
index faed9d3..4495496 100644
--- a/util.go
+++ b/util.go
@@ -35,7 +35,7 @@
 
 // Takes a reader and a path and writes the content
 func (a Afero) WriteReader(path string, r io.Reader) (err error) {
-	return WriteReader(a.fs, path, r)
+	return WriteReader(a.Fs, path, r)
 }
 
 func WriteReader(fs Fs, path string, r io.Reader) (err error) {
@@ -63,7 +63,7 @@
 
 // Same as WriteReader but checks to see if file/directory already exists.
 func (a Afero) SafeWriteReader(path string, r io.Reader) (err error) {
-	return SafeWriteReader(a.fs, path, r)
+	return SafeWriteReader(a.Fs, path, r)
 }
 
 func SafeWriteReader(fs Fs, path string, r io.Reader) (err error) {
@@ -96,7 +96,7 @@
 }
 
 func (a Afero) GetTempDir(subPath string) string {
-	return GetTempDir(a.fs, subPath)
+	return GetTempDir(a.Fs, subPath)
 }
 
 // GetTempDir returns the default temp directory with trailing slash
@@ -170,7 +170,7 @@
 }
 
 func (a Afero) FileContainsBytes(filename string, subslice []byte) (bool, error) {
-	return FileContainsBytes(a.fs, filename, subslice)
+	return FileContainsBytes(a.Fs, filename, subslice)
 }
 
 // Check if a file contains a specified string.
@@ -221,7 +221,7 @@
 }
 
 func (a Afero) DirExists(path string) (bool, error) {
-	return DirExists(a.fs, path)
+	return DirExists(a.Fs, path)
 }
 
 // DirExists checks if a path exists and is a directory.
@@ -237,7 +237,7 @@
 }
 
 func (a Afero) IsDir(path string) (bool, error) {
-	return IsDir(a.fs, path)
+	return IsDir(a.Fs, path)
 }
 
 // IsDir checks if a given path is a directory.
@@ -250,7 +250,7 @@
 }
 
 func (a Afero) IsEmpty(path string) (bool, error) {
-	return IsEmpty(a.fs, path)
+	return IsEmpty(a.Fs, path)
 }
 
 // IsEmpty checks if a given file or directory is empty.
@@ -275,7 +275,7 @@
 }
 
 func (a Afero) Exists(path string) (bool, error) {
-	return Exists(a.fs, path)
+	return Exists(a.Fs, path)
 }
 
 // Check if a file or directory exists.