diff --git a/src/FactSystem/CMakeLists.txt b/src/FactSystem/CMakeLists.txt
index 6b7f199..24bc8cc 100644
--- a/src/FactSystem/CMakeLists.txt
+++ b/src/FactSystem/CMakeLists.txt
@@ -1,4 +1,6 @@
 
+add_subdirectory(FactControls)
+
 set(EXTRA_SRC)
 if(BUILD_TESTING)
 	list(APPEND EXTRA_SRC
@@ -11,7 +13,6 @@ endif()
 
 add_library(FactSystem
 	Fact.cc
-	FactControls/FactPanelController.cc
 	FactGroup.cc
 	FactMetaData.cc
 	FactSystem.cc
@@ -25,6 +26,7 @@ add_library(FactSystem
 target_link_libraries(FactSystem
 	PRIVATE
 		qgc
+		FactControls
 )
 
 target_include_directories(FactSystem
diff --git a/src/FactSystem/FactControls/CMakeLists.txt b/src/FactSystem/FactControls/CMakeLists.txt
new file mode 100644
index 0000000..c6d3c7f
--- /dev/null
+++ b/src/FactSystem/FactControls/CMakeLists.txt
@@ -0,0 +1,19 @@
+add_library(FactControls
+    FactPanelController.cc
+)
+
+add_custom_target(FactControlsQml
+    SOURCES
+    AltitudeFactTextField.qml  
+    FactCheckBox.qml  
+    FactLabel.qml          
+    FactTextField.qml     
+    FactTextFieldSlider.qml
+    FactBitmask.qml            
+    FactComboBox.qml  
+    FactTextFieldGrid.qml  
+    FactTextFieldRow.qml  
+    FactValueSlider.qml
+)
+
+target_link_libraries(FactControls qgc)
\ No newline at end of file