diff --git a/demo/src/input.h b/demo/src/input.h
new file mode 100644
index 0000000..b6cdd87
--- /dev/null
+++ b/demo/src/input.h
@@ -0,0 +1,35 @@
+// Copyright 2020 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// https://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#pragma once
+
+#include <cstdint>
+#include <sstream>
+#include <stdint.h>
+#include <string>
+
+class Goat {
+public:
+    Goat() : horns(0) {}
+    void add_a_horn();
+    std::string describe() const;
+private:
+    uint32_t horns;
+};
+
+inline uint32_t DoMath(uint32_t a) {
+    return a * 3;
+}
+
+inline void Goat::add_a_horn() { horns++; }
+inline std::string Goat::describe() const {
+    std::ostringstream oss;
+    std::string plural = horns == 1 ? "" : "s";
+    oss << "This goat has " << horns << " horn" << plural << ".";
+    return oss.str();
+}
