diff --git a/CMakeLists.txt b/CMakeLists.txt
index 59f56d2064d20fa629b95bdb8ecaaa84d82dd456..c755f3598acd079f5d7d7964b12a92649e55dcd6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,11 +1,14 @@
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 3.1)
 project(arbitrateor)
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
 
 find_package(Wt REQUIRED)
 find_package(Groove REQUIRED)
 
-add_executable(arbitrateor main.cpp)
+add_executable(arbitrateor src/main.cpp src/WebInterface.cpp src/GroovePlayer.cpp)
+target_link_libraries(arbitrateor ${Wt_LIBRARIES} ${GROOVE_LIBRARY})
 
 install(TARGETS arbitrateor RUNTIME DESTINATION bin)
diff --git a/src/GroovePlayer.cpp b/src/GroovePlayer.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..aef1540f5349dbe895cca42df3107602d7dea8ab
--- /dev/null
+++ b/src/GroovePlayer.cpp
@@ -0,0 +1,20 @@
+/*
+ * Copyright (C) 2017  Kevin Whitaker <eyecreate@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+#include "GroovePlayer.h"
diff --git a/src/GroovePlayer.h b/src/GroovePlayer.h
new file mode 100644
index 0000000000000000000000000000000000000000..615066558ad666d90409fbf3bb6787e39d162fb0
--- /dev/null
+++ b/src/GroovePlayer.h
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2017  Kevin Whitaker <eyecreate@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+#ifndef GROOVEPLAYER_H
+#define GROOVEPLAYER_H
+
+class GroovePlayer
+{
+};
+
+#endif // GROOVEPLAYER_H
diff --git a/src/WebInterface.cpp b/src/WebInterface.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..68b2f02045d3b660971973e385f53846325505ed
--- /dev/null
+++ b/src/WebInterface.cpp
@@ -0,0 +1,20 @@
+/*
+ * Copyright (C) 2017  Kevin Whitaker <eyecreate@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+#include "WebInterface.h"
diff --git a/src/WebInterface.h b/src/WebInterface.h
new file mode 100644
index 0000000000000000000000000000000000000000..3a157e1fee97c5f598eabf2fa87aa3e48e38429f
--- /dev/null
+++ b/src/WebInterface.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2017  Kevin Whitaker <eyecreate@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+#ifndef WEBINTERFACE_H
+#define WEBINTERFACE_H
+
+#include <Wt/WApplication>
+
+class WebInterface : public Wt::WApplication
+{
+};
+
+#endif // WEBINTERFACE_H
diff --git a/main.cpp b/src/main.cpp
similarity index 82%
rename from main.cpp
rename to src/main.cpp
index 77ebb22d170d73766c58afed6476436a7ca193cb..4a1cab38435299bcfea8e0cb33fb3ecd010097cf 100644
--- a/main.cpp
+++ b/src/main.cpp
@@ -1,4 +1,5 @@
 #include <iostream>
+#include "WebInterface.h"
 
 int main ( int argc, char** argv )
 {