diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..ea8c4bf7f35f6f77f75d92ad8ce8349f6e81ddba
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/target
diff --git a/Cargo.lock b/Cargo.lock
new file mode 100644
index 0000000000000000000000000000000000000000..0e90bb6099df31aa89f4b65f2fd9b19b1b247e15
--- /dev/null
+++ b/Cargo.lock
@@ -0,0 +1,7 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "hercules_ir"
+version = "0.1.0"
diff --git a/Cargo.toml b/Cargo.toml
new file mode 100644
index 0000000000000000000000000000000000000000..c93ca7055db1b397d0e103312a52772af7c4386a
--- /dev/null
+++ b/Cargo.toml
@@ -0,0 +1,5 @@
+[workspace]
+
+members = [
+	"hercules_ir"
+]
diff --git a/DESIGN.md b/DESIGN.md
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/README.md b/README.md
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..32a3a13692e69077341ab88f56ddf0257ddc472a 100644
--- a/README.md
+++ b/README.md
@@ -0,0 +1,3 @@
+# Hercules
+
+See [DESIGN.md](DESIGN.md) for a discussion of Hercules' design.
diff --git a/hercules_ir/Cargo.toml b/hercules_ir/Cargo.toml
new file mode 100644
index 0000000000000000000000000000000000000000..da5927d122a99de640608eb11c9ca6208de05c3a
--- /dev/null
+++ b/hercules_ir/Cargo.toml
@@ -0,0 +1,4 @@
+[package]
+name = "hercules_ir"
+version = "0.1.0"
+authors = ["Russel Arbore <rarbore2@illinois.edu>"]
diff --git a/hercules_ir/src/lib.rs b/hercules_ir/src/lib.rs
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391