Fix UUID logic to match spec.
diff --git a/init.go b/init.go
index 54745d9..d143dde 100644
--- a/init.go
+++ b/init.go
@@ -5,7 +5,6 @@
 	"encoding/json"
 	"fmt"
 	"github.com/30x/apid"
-	"time"
 )
 
 const (
@@ -38,16 +37,18 @@
 }
 
 /*
- * generates a random uuid (mix of timestamp & crypto random string)
+ * generates a random uuid
  */
 func generate_uuid() string {
-	unix32bits := uint32(time.Now().UTC().Unix())
-	buff := make([]byte, 12)
+	buff := make([]byte, 16)
 	numRead, err := rand.Read(buff)
 	if numRead != len(buff) || err != nil {
 		panic(err)
 	}
-	return fmt.Sprintf("%x-%x-%x-%x-%x-%x", unix32bits, buff[0:2], buff[2:4], buff[4:6], buff[6:8], buff[8:])
+	/* uuid v4 spec */
+	buff[6] = (buff[6] | 0x40) & 0x4F
+	buff[8] = (buff[8] | 0x80) & 0xBF
+	return fmt.Sprintf("%x-%x-%x-%x-%x", buff[0:4], buff[4:6], buff[6:8], buff[8:10], buff[10:])
 }
 
 func init() {