public static function mint($ver = 1, $node = NULL, $ns = NULL, $time = NULL, $sequence = NULL ) {
  switch((int) $ver) {
   case 1:
    return new self(self::mintTime($node, $time, $sequence));
   case 2:
    // Version 2 is not supported 
    throw new UUIDException("Version 2 is unsupported.");
   case 3:
    return new self(self::mintName(self::MD5, $node, $ns));
   case 4:
    return new self(self::mintRand());
   case 5:
    return new self(self::mintName(self::SHA1, $node, $ns));
   default:
    throw new UUIDException("Selected version is invalid or unsupported.");
  }
 }