diff --git a/cmd/ipfs/init.go b/cmd/ipfs/init.go
index 2c4446c58bcae7a8aee3518da05986e837b1273d..18fbaa134e0e9122e9b93b27c83a90e2985e3f3d 100644
--- a/cmd/ipfs/init.go
+++ b/cmd/ipfs/init.go
@@ -11,7 +11,6 @@ import (
 	config "github.com/jbenet/go-ipfs/config"
 	ci "github.com/jbenet/go-ipfs/crypto"
 	peer "github.com/jbenet/go-ipfs/peer"
-	updates "github.com/jbenet/go-ipfs/updates"
 	u "github.com/jbenet/go-ipfs/util"
 )
 
@@ -137,10 +136,7 @@ func initCmd(c *commander.Command, inp []string) error {
 	}
 
 	// tracking ipfs version used to generate the init folder and adding update checker default setting.
-	cfg.Version = config.Version{
-		Check:   "error",
-		Current: updates.Version,
-	}
+	cfg.Version = config.VersionDefaultValue()
 
 	err = config.WriteConfigFile(filename, cfg)
 	if err != nil {
diff --git a/cmd/ipfs/version.go b/cmd/ipfs/version.go
index 1c02bf69fa8e2018c7307abff543fc16f3e04fc9..b0e5edcff12fdb33331609fb882e27560498f077 100644
--- a/cmd/ipfs/version.go
+++ b/cmd/ipfs/version.go
@@ -1,9 +1,10 @@
 package main
 
 import (
-	"github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/commander"
-	updates "github.com/jbenet/go-ipfs/updates"
+	config "github.com/jbenet/go-ipfs/config"
 	u "github.com/jbenet/go-ipfs/util"
+
+	"github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/commander"
 )
 
 var cmdIpfsVersion = &commander.Command{
@@ -25,6 +26,6 @@ func versionCmd(c *commander.Command, _ []string) error {
 	if !number {
 		u.POut("ipfs version ")
 	}
-	u.POut("%s\n", updates.Version)
+	u.POut("%s\n", config.CurrentVersionNumber)
 	return nil
 }
diff --git a/config/version.go b/config/version.go
index 88534ebc7bc8a7b7113ca7452bddb8ce0a1cfae2..feb354b189e2937de332b905585f5c52311655e3 100644
--- a/config/version.go
+++ b/config/version.go
@@ -7,6 +7,9 @@ import (
 	"time"
 )
 
+// CurrentVersionNumber is the current application's version literal
+const CurrentVersionNumber = "0.1.5"
+
 // Version regulates checking if the most recent version is run
 type Version struct {
 	// Current is the ipfs version for which config was generated
@@ -42,27 +45,36 @@ const (
 )
 
 // AutoUpdateSetting implements json.Unmarshaler to check values in config
-// supported values:
-// 	"never" - do not auto-update
-// 	"patch" - auto-update on new patch versions
-// 	"minor" - auto-update on new minor (or patch) versions (Default)
-// 	"major" - auto-update on any new version
 type AutoUpdateSetting int
 
+// AutoUpdateSetting values
+const (
+	AutoUpdateNever AutoUpdateSetting = iota // do not auto-update
+	AutoUpdatePatch                          // only on new patch versions
+	AutoUpdateMinor                          // on new minor or patch versions (Default)
+	AutoUpdateMajor                          // on all, even Major, version changes
+)
+
+// ErrUnknownAutoUpdateSetting is returned when an unknown value is read from the config
+var ErrUnknownAutoUpdateSetting = errors.New("unknown value for AutoUpdate")
+
+// defaultCheckPeriod governs h
+var defaultCheckPeriod = time.Hour * 48
+
 // UnmarshalJSON checks the input against known strings
 func (s *AutoUpdateSetting) UnmarshalJSON(in []byte) error {
 
 	switch strings.ToLower(string(in)) {
 	case `"never"`:
-		*s = UpdateNever
+		*s = AutoUpdateNever
 	case `"major"`:
-		*s = UpdateMajor
+		*s = AutoUpdateMajor
 	case `"minor"`:
-		*s = UpdateMinor
+		*s = AutoUpdateMinor
 	case `"patch"`:
-		*s = UpdatePatch
+		*s = AutoUpdatePatch
 	default:
-		*s = UpdateMinor
+		*s = AutoUpdateMinor
 		return ErrUnknownAutoUpdateSetting
 	}
 	return nil
@@ -76,32 +88,19 @@ func (s AutoUpdateSetting) MarshalJSON() ([]byte, error) {
 // String converts valye to human readable string
 func (s AutoUpdateSetting) String() string {
 	switch s {
-	case UpdateNever:
+	case AutoUpdateNever:
 		return "never"
-	case UpdateMajor:
+	case AutoUpdateMajor:
 		return "major"
-	case UpdateMinor:
+	case AutoUpdateMinor:
 		return "minor"
-	case UpdatePatch:
+	case AutoUpdatePatch:
 		return "patch"
 	default:
 		return ErrUnknownAutoUpdateSetting.Error()
 	}
 }
 
-// ErrUnknownAutoUpdateSetting is returned when an unknown value is read from the config
-var ErrUnknownAutoUpdateSetting = errors.New("unknown value for AutoUpdate")
-
-const (
-	UpdateMinor AutoUpdateSetting = iota // first value so that it is the zero value and thus the default
-	UpdatePatch
-	UpdateMajor
-	UpdateNever
-)
-
-// defaultCheckPeriod governs h
-var defaultCheckPeriod = time.Hour * 48
-
 func (v *Version) checkPeriodDuration() time.Duration {
 	d, err := strconv.Atoi(v.CheckPeriod)
 	if err != nil {
@@ -128,8 +127,18 @@ func RecordUpdateCheck(cfg *Config, filename string) {
 
 	if cfg.Version.CheckPeriod == "" {
 		// CheckPeriod was not initialized for some reason (e.g. config file broken)
-		cfg.Version.CheckPeriod = strconv.Itoa(int(defaultCheckPeriod))
+		log.Error("config.Version.CheckPeriod not set. config broken?")
 	}
 
 	WriteConfigFile(filename, cfg)
 }
+
+// VersionDefaultValue returns the default version config value (for init).
+func VersionDefaultValue() Version {
+	return Version{
+		Current:     CurrentVersionNumber,
+		Check:       "error",
+		CheckPeriod: strconv.Itoa(int(defaultCheckPeriod)),
+		AutoUpdate:  AutoUpdateMinor,
+	}
+}
diff --git a/config/version_test.go b/config/version_test.go
index 01b1a6433951f92fb666d3fce493c79121061907..37160c47896360d181c809126672d22625ebe430 100644
--- a/config/version_test.go
+++ b/config/version_test.go
@@ -14,12 +14,12 @@ func TestAutoUpdateValues(t *testing.T) {
 		val   AutoUpdateSetting
 		err   error
 	}{
-		{`{"hello":123}`, UpdateMinor, nil}, // default
-		{`{"AutoUpdate": "never"}`, UpdateNever, nil},
-		{`{"AutoUpdate": "patch"}`, UpdatePatch, nil},
-		{`{"AutoUpdate": "minor"}`, UpdateMinor, nil},
-		{`{"AutoUpdate": "major"}`, UpdateMajor, nil},
-		{`{"AutoUpdate": "blarg"}`, UpdateMinor, ErrUnknownAutoUpdateSetting},
+		{`{"hello":123}`, AutoUpdateNever, nil}, // zero value
+		{`{"AutoUpdate": "never"}`, AutoUpdateNever, nil},
+		{`{"AutoUpdate": "patch"}`, AutoUpdatePatch, nil},
+		{`{"AutoUpdate": "minor"}`, AutoUpdateMinor, nil},
+		{`{"AutoUpdate": "major"}`, AutoUpdateMajor, nil},
+		{`{"AutoUpdate": "blarg"}`, AutoUpdateMinor, ErrUnknownAutoUpdateSetting},
 	}
 
 	for i, tc := range tests {
diff --git a/net/handshake/handshake1.go b/net/handshake/handshake1.go
index 4cfd89e3c2748f585b70037f5311782347653111..306c933908e9f5603f455dd7cc3490a90d720ba4 100644
--- a/net/handshake/handshake1.go
+++ b/net/handshake/handshake1.go
@@ -4,15 +4,15 @@ import (
 	"errors"
 	"fmt"
 
+	config "github.com/jbenet/go-ipfs/config"
 	pb "github.com/jbenet/go-ipfs/net/handshake/pb"
-	updates "github.com/jbenet/go-ipfs/updates"
 
 	semver "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/coreos/go-semver/semver"
 )
 
 // ipfsVersion holds the current protocol version for a client running this code
 var ipfsVersion *semver.Version
-var clientVersion = "go-ipfs/" + updates.Version
+var clientVersion = "go-ipfs/" + config.CurrentVersionNumber
 
 func init() {
 	var err error
diff --git a/updates/updates.go b/updates/updates.go
index 458442d64e3a9dc7348fa31cc7c13fb5c7f1bb54..e7b6054d9e141e7803d3bcf40448686d582eda6b 100644
--- a/updates/updates.go
+++ b/updates/updates.go
@@ -5,7 +5,7 @@ import (
 	"os"
 	"time"
 
-	"github.com/jbenet/go-ipfs/config"
+	config "github.com/jbenet/go-ipfs/config"
 	u "github.com/jbenet/go-ipfs/util"
 
 	semver "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/coreos/go-semver/semver"
@@ -15,7 +15,7 @@ import (
 
 const (
 	// Version is the current application's version literal
-	Version = "0.1.5"
+	Version = config.CurrentVersionNumber
 
 	updateEndpointURL = "https://api.equinox.io/1/Updates"
 	updateAppID       = "ap_YM8nz6rGm1UPg_bf63Lw6Vjz49"
@@ -150,7 +150,7 @@ func Apply(rel *check.Result) error {
 // ShouldAutoUpdate decides wether a new version should be applied
 // checks against config setting and new version string. returns false in case of error
 func ShouldAutoUpdate(setting config.AutoUpdateSetting, newVer string) bool {
-	if setting == config.UpdateNever {
+	if setting == config.AutoUpdateNever {
 		return false
 	}
 
@@ -165,7 +165,7 @@ func ShouldAutoUpdate(setting config.AutoUpdateSetting, newVer string) bool {
 
 	switch setting {
 
-	case config.UpdatePatch:
+	case config.AutoUpdatePatch:
 		if n[0] < c[0] {
 			return false
 		}
@@ -176,14 +176,14 @@ func ShouldAutoUpdate(setting config.AutoUpdateSetting, newVer string) bool {
 
 		return n[2] > c[2]
 
-	case config.UpdateMinor:
+	case config.AutoUpdateMinor:
 		if n[0] != c[0] {
 			return false
 		}
 
 		return n[1] > c[1] || (n[1] == c[1] && n[2] > c[2])
 
-	case config.UpdateMajor:
+	case config.AutoUpdateMajor:
 		for i := 0; i < 3; i++ {
 			if n[i] < c[i] {
 				return false
@@ -222,7 +222,7 @@ func CliCheckForUpdates(cfg *config.Config, confFile string) error {
 	// there is an update available
 
 	// if we autoupdate
-	if cfg.Version.AutoUpdate != config.UpdateNever {
+	if cfg.Version.AutoUpdate != config.AutoUpdateNever {
 		// and we should auto update
 		if ShouldAutoUpdate(cfg.Version.AutoUpdate, u.Version) {
 			log.Noticef("Applying update %s", u.Version)
diff --git a/updates/updates_test.go b/updates/updates_test.go
index 5e3ce932390cdc203b7667260d971bddc44605cb..c323bc75c328d3f81daf21855498d9f1199da5e7 100644
--- a/updates/updates_test.go
+++ b/updates/updates_test.go
@@ -21,29 +21,29 @@ func TestShouldAutoUpdate(t *testing.T) {
 		currV, newV string
 		should      bool
 	}{
-		{config.UpdateNever, "0.0.1", "1.0.0", false},
-		{config.UpdateNever, "0.0.1", "0.1.0", false},
-		{config.UpdateNever, "0.0.1", "0.0.1", false},
-		{config.UpdateNever, "0.0.1", "0.0.2", false},
-
-		{config.UpdatePatch, "0.0.1", "1.0.0", false},
-		{config.UpdatePatch, "0.0.1", "0.1.0", false},
-		{config.UpdatePatch, "0.0.1", "0.0.1", false},
-		{config.UpdatePatch, "0.0.2", "0.0.1", false},
-		{config.UpdatePatch, "0.0.1", "0.0.2", true},
-
-		{config.UpdateMinor, "0.1.1", "1.0.0", false},
-		{config.UpdateMinor, "0.1.1", "0.2.0", true},
-		{config.UpdateMinor, "0.1.1", "0.1.2", true},
-		{config.UpdateMinor, "0.2.1", "0.1.9", false},
-		{config.UpdateMinor, "0.1.2", "0.1.1", false},
-
-		{config.UpdateMajor, "1.0.0", "2.0.0", true},
-		{config.UpdateMajor, "1.0.0", "1.1.0", true},
-		{config.UpdateMajor, "1.0.0", "1.0.1", true},
-		{config.UpdateMajor, "2.0.0", "1.0.0", false}, // don't downgrade
-		{config.UpdateMajor, "2.5.0", "2.4.0", false},
-		{config.UpdateMajor, "2.0.2", "2.0.1", false},
+		{config.AutoUpdateNever, "0.0.1", "1.0.0", false},
+		{config.AutoUpdateNever, "0.0.1", "0.1.0", false},
+		{config.AutoUpdateNever, "0.0.1", "0.0.1", false},
+		{config.AutoUpdateNever, "0.0.1", "0.0.2", false},
+
+		{config.AutoUpdatePatch, "0.0.1", "1.0.0", false},
+		{config.AutoUpdatePatch, "0.0.1", "0.1.0", false},
+		{config.AutoUpdatePatch, "0.0.1", "0.0.1", false},
+		{config.AutoUpdatePatch, "0.0.2", "0.0.1", false},
+		{config.AutoUpdatePatch, "0.0.1", "0.0.2", true},
+
+		{config.AutoUpdateMinor, "0.1.1", "1.0.0", false},
+		{config.AutoUpdateMinor, "0.1.1", "0.2.0", true},
+		{config.AutoUpdateMinor, "0.1.1", "0.1.2", true},
+		{config.AutoUpdateMinor, "0.2.1", "0.1.9", false},
+		{config.AutoUpdateMinor, "0.1.2", "0.1.1", false},
+
+		{config.AutoUpdateMajor, "1.0.0", "2.0.0", true},
+		{config.AutoUpdateMajor, "1.0.0", "1.1.0", true},
+		{config.AutoUpdateMajor, "1.0.0", "1.0.1", true},
+		{config.AutoUpdateMajor, "2.0.0", "1.0.0", false}, // don't downgrade
+		{config.AutoUpdateMajor, "2.5.0", "2.4.0", false},
+		{config.AutoUpdateMajor, "2.0.2", "2.0.1", false},
 	}
 
 	for i, tc := range tests {