diff --git a/unix.go b/unix.go
new file mode 100644
index 0000000..b953c60
--- /dev/null
+++ b/unix.go
@@ -0,0 +1,41 @@
+// This creates a simple hello world window
+package main
+
+import 	(
+	"os"
+	"os/exec"
+	"log"
+	"net"
+//	"git.wit.org/wit/gui"
+//	"github.com/davecgh/go-spew/spew"
+)
+
+func CheckSuperuser() bool {
+	return os.Getuid() == 0
+}
+
+func Escalate() {
+	if os.Getuid() != 0 {
+		cmd := exec.Command("sudo", "./control-panel-dns")
+		cmd.Stdin = os.Stdin
+		cmd.Stdout = os.Stdout
+		cmd.Stderr = os.Stderr
+		err := cmd.Run()
+		if err != nil {
+			log.Fatal(err)
+		}
+	}
+}
+
+// You need permission to do a zone transfer. Otherwise:
+// dig +noall +answer +multiline lab.wit.org any 
+// dig +all +multiline fire.lab.wit.org # gives the zonefile header (ttl vals)
+func DumpPublicDNSZone(zone string) {
+	entries, err := net.LookupHost(zone)
+	if err != nil {
+		panic(err)
+	}
+	for _, entry := range entries {
+		log.Println(entry)
+	}
+}