diff --git a/cmd/gqgmc/main.go b/cmd/gqgmc/main.go
index 12e16538989e4ab5e4fdf17deb48ee36adea19a4..626c58a7db47dc0b46e6bea474f23ae83a9cd68c 100644
--- a/cmd/gqgmc/main.go
+++ b/cmd/gqgmc/main.go
@@ -20,7 +20,6 @@ func main() {
 		volts    int16
 		ser      string
 		err      error
-		ver      string
 		t        time.Time
 	)
 
@@ -54,12 +53,9 @@ func main() {
 	}
 	fmt.Printf("CPS: %d\n", cps)
 
-	ver, err = gc.Version()
-	if err != nil {
-		fmt.Printf("Failed: '%s'\n", err)
-		return
-	}
-	fmt.Printf("Version: %s\n", ver)
+	fmt.Printf("Version: %s\n", gc.Version())
+	fmt.Printf("Short Version: %s\n", gc.Ver())
+	fmt.Printf("Model: %s\n", gc.Model())
 
 	ser, err = gc.SerialNum()
 	if err != nil {
diff --git a/devices/geiger/geiger.go b/devices/geiger/geiger.go
index d04835a2bb067da65c48aebd3f495b2e717fe992..9c2d73165196a4714cc2fd02d05e5a76a066841e 100644
--- a/devices/geiger/geiger.go
+++ b/devices/geiger/geiger.go
@@ -21,7 +21,9 @@ func New(c Config) (Counter, error) {
 // Counter is an interface for Geiger Counters
 type Counter interface {
 	Clear() error
-	Version() (string, error)
+	Model() string
+	Version() string
+	Ver() string
 	SerialNum() (string, error)
 	GetCPM() (uint16, error)
 	GetCPS() (uint16, error)
diff --git a/devices/geiger/gqgmc.go b/devices/geiger/gqgmc.go
index 59d4ff131134b21d7a5e40802e431d645d145200..95ffdc463e9052bc13c0a984c93c2e1e59fa1ad2 100644
--- a/devices/geiger/gqgmc.go
+++ b/devices/geiger/gqgmc.go
@@ -123,21 +123,32 @@ const (
 type GQGMCCounter struct {
 	port   *serial.Port
 	config *serial.Config
+	version,
+	shortVer,
+	model string
 }
 
 // NewGQGMC creates a new GQGMC Counter instance
 func NewGQGMC(c Config) (*GQGMCCounter, error) {
-	cfg := serial.Config{
+	var gc GQGMCCounter
+	var v []byte
+
+	gc.config = &serial.Config{
 		Name:        c.Device,
 		Baud:        57600,
 		ReadTimeout: 500 * time.Millisecond,
 	}
-	p, err := serial.OpenPort(&cfg)
+	p, err := serial.OpenPort(gc.config)
 	if err != nil {
 		return nil, err
 	}
+	gc.port = p
+	v, err = gc.communicate(cmdGetVersion, 14)
+	gc.model = string(v[:6])
+	gc.version = string(v[7:])
+	gc.shortVer = string(v[10:])
 	//getConfigurationData()
-	return &GQGMCCounter{port: p, config: &cfg}, nil
+	return &gc, nil
 }
 
 // Clear clears out any remaining data
@@ -153,9 +164,18 @@ func (gc *GQGMCCounter) Clear() error {
 }
 
 // Version gets the version of the device
-func (gc *GQGMCCounter) Version() (string, error) {
-	ver, err := gc.communicate(cmdGetVersion, 14)
-	return string(ver), err
+func (gc *GQGMCCounter) Version() string {
+	return gc.version
+}
+
+// Ver gets the short version of the device
+func (gc *GQGMCCounter) Ver() string {
+	return gc.shortVer
+}
+
+// Model gets the model of the device
+func (gc *GQGMCCounter) Model() string {
+	return gc.model
 }
 
 // SerialNum gets the serial number of the device