diff --git a/CMakeLists.txt b/CMakeLists.txt
index f8bf4c7c2ee9cb785e5aa85a9c280ac6a73ff391..a224f8d7f71946b0c15c809d3b27bc4cbb4a0111 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -16,6 +16,9 @@ endif()
 # Use external or embedded dependencies
 option(USGSCSM_EXTERNAL_DEPS "If the library should be built with external or embedded dependencies" OFF)
 
+# To find JSON's config file
+set (CMAKE_PREFIX_PATH "${CMAKE_SOURCE_DIR}/cmake;${CMAKE_PREFIX_PATH}")
+
 if(USGSCSM_EXTERNAL_DEPS)
   message(STATUS "Using external dependencies")
   # CSM API library
diff --git a/bin/usgscsm_cam_test.cc b/bin/usgscsm_cam_test.cc
index c624a52e9b826a9823d86880f11dc98fc6c7cbe8..846a855791a57d0549a1632d731be2438361964c 100644
--- a/bin/usgscsm_cam_test.cc
+++ b/bin/usgscsm_cam_test.cc
@@ -11,8 +11,8 @@
 //   an ISD model).
 // - Ability to export a CSM model in ISD format to a CSM model state file. 
 
-#include <usgscsm/UsgsAstroPlugin.h>
-#include <csm/RasterGM.h>
+#include <UsgsAstroPlugin.h>
+#include <RasterGM.h>
 #include <UsgsAstroLsSensorModel.h>
 
 #include <iostream>
diff --git a/cmake/nlohmann_jsonConfig.cmake b/cmake/nlohmann_jsonConfig.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..27b0a864a89356e466d57f57b6a6cd76be2be801
--- /dev/null
+++ b/cmake/nlohmann_jsonConfig.cmake
@@ -0,0 +1,15 @@
+include(FindPackageHandleStandardArgs)
+set(${CMAKE_FIND_PACKAGE_NAME}_CONFIG ${CMAKE_CURRENT_LIST_FILE})
+find_package_handle_standard_args(nlohmann_json CONFIG_MODE)
+
+if(NOT TARGET nlohmann_json::nlohmann_json)
+    include("${CMAKE_CURRENT_LIST_DIR}/nlohmann_jsonTargets.cmake")
+    if((NOT TARGET nlohmann_json) AND
+       (NOT nlohmann_json_FIND_VERSION OR
+        nlohmann_json_FIND_VERSION VERSION_LESS 3.2.0))
+        add_library(nlohmann_json INTERFACE IMPORTED)
+        set_target_properties(nlohmann_json PROPERTIES
+            INTERFACE_LINK_LIBRARIES nlohmann_json::nlohmann_json
+        )
+    endif()
+endif()
diff --git a/cmake/nlohmann_jsonTargets.cmake b/cmake/nlohmann_jsonTargets.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..0ae4cac305d7a07c0e84c9db2c34f48e75e30a2a
--- /dev/null
+++ b/cmake/nlohmann_jsonTargets.cmake
@@ -0,0 +1,100 @@
+# Generated by CMake
+
+if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5)
+   message(FATAL_ERROR "CMake >= 2.6.0 required")
+endif()
+cmake_policy(PUSH)
+cmake_policy(VERSION 2.6...3.19)
+#----------------------------------------------------------------
+# Generated CMake target import file.
+#----------------------------------------------------------------
+
+# Commands may need to know the format version.
+set(CMAKE_IMPORT_FILE_VERSION 1)
+
+# Protect against multiple inclusion, which would fail when already imported targets are added once more.
+set(_targetsDefined)
+set(_targetsNotDefined)
+set(_expectedTargets)
+foreach(_expectedTarget nlohmann_json::nlohmann_json)
+  list(APPEND _expectedTargets ${_expectedTarget})
+  if(NOT TARGET ${_expectedTarget})
+    list(APPEND _targetsNotDefined ${_expectedTarget})
+  endif()
+  if(TARGET ${_expectedTarget})
+    list(APPEND _targetsDefined ${_expectedTarget})
+  endif()
+endforeach()
+if("${_targetsDefined}" STREQUAL "${_expectedTargets}")
+  unset(_targetsDefined)
+  unset(_targetsNotDefined)
+  unset(_expectedTargets)
+  set(CMAKE_IMPORT_FILE_VERSION)
+  cmake_policy(POP)
+  return()
+endif()
+if(NOT "${_targetsDefined}" STREQUAL "")
+  message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_targetsDefined}\nTargets not yet defined: ${_targetsNotDefined}\n")
+endif()
+unset(_targetsDefined)
+unset(_targetsNotDefined)
+unset(_expectedTargets)
+
+
+# Compute the installation prefix relative to this file.
+get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
+get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+if(_IMPORT_PREFIX STREQUAL "/")
+  set(_IMPORT_PREFIX "")
+endif()
+
+# Create imported target nlohmann_json::nlohmann_json
+add_library(nlohmann_json::nlohmann_json INTERFACE IMPORTED)
+
+set_target_properties(nlohmann_json::nlohmann_json PROPERTIES
+  INTERFACE_COMPILE_DEFINITIONS "JSON_USE_IMPLICIT_CONVERSIONS=\$<BOOL:ON>;JSON_DIAGNOSTICS=\$<BOOL:OFF>"
+  INTERFACE_COMPILE_FEATURES "cxx_std_11"
+  #INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${_IMPORT_PREFIX}/include"
+)
+
+if(CMAKE_VERSION VERSION_LESS 3.0.0)
+  message(FATAL_ERROR "This file relies on consumers using CMake 3.0.0 or greater.")
+endif()
+
+# Load information for each installed configuration.
+get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+file(GLOB CONFIG_FILES "${_DIR}/nlohmann_jsonTargets-*.cmake")
+foreach(f ${CONFIG_FILES})
+  include(${f})
+endforeach()
+
+# Cleanup temporary variables.
+set(_IMPORT_PREFIX)
+
+# Loop over all imported files and verify that they actually exist
+foreach(target ${_IMPORT_CHECK_TARGETS} )
+  foreach(file ${_IMPORT_CHECK_FILES_FOR_${target}} )
+    if(NOT EXISTS "${file}" )
+      message(FATAL_ERROR "The imported target \"${target}\" references the file
+   \"${file}\"
+but this file does not exist.  Possible reasons include:
+* The file was deleted, renamed, or moved to another location.
+* An install or uninstall procedure did not complete successfully.
+* The installation package was faulty and contained
+   \"${CMAKE_CURRENT_LIST_FILE}\"
+but not all the files it references.
+")
+    endif()
+  endforeach()
+  unset(_IMPORT_CHECK_FILES_FOR_${target})
+endforeach()
+unset(_IMPORT_CHECK_TARGETS)
+
+# This file does not depend on other imported targets which have
+# been exported from the same project but in a separate export set.
+
+# Commands beyond this point should not need to know the version.
+set(CMAKE_IMPORT_FILE_VERSION)
+cmake_policy(POP)