diff --git a/lib/pdk.rb b/lib/pdk.rb
index <HASH>..<HASH> 100644
--- a/lib/pdk.rb
+++ b/lib/pdk.rb
@@ -1,12 +1,20 @@
-require 'pdk/analytics'
-require 'pdk/answer_file'
-require 'pdk/config'
-require 'pdk/generate'
 require 'pdk/i18n'
 require 'pdk/logger'
-require 'pdk/report'
-require 'pdk/validate'
-require 'pdk/version'
 
 module PDK
+  autoload :Analytics, 'pdk/analytics'
+  autoload :AnswerFile, 'pdk/answer_file'
+  autoload :Config, 'pdk/config'
+  autoload :Generate, 'pdk/generate'
+  autoload :Report, 'pdk/report'
+  autoload :TEMPLATE_REF, 'pdk/version'
+  autoload :Util, 'pdk/util'
+  autoload :Validate, 'pdk/validate'
+  autoload :VERSION, 'pdk/version'
+
+  # TODO - Refactor backend code to not raise CLI errors
+  module CLI
+    autoload :FatalError, 'pdk/cli/errors'
+    autoload :ExitWithError, 'pdk/cli/errors'
+  end
 end
(maint) Convert base requires to autoloads