diff --git a/classes/Component.m b/classes/Component.m
index 0a1e53fcffc0b4f885faa26c024bbf5ccc32ab38..91d88c8a860e60aa5898e694d4304a4f73ed6d90 100644
--- a/classes/Component.m
+++ b/classes/Component.m
@@ -14,7 +14,8 @@ classdef Component < Config
                 varsIn = 0
             end
             obj.mission = mission;
-            if nargin == 0, return;  end
+            %if isempty(mission.name) && nargin > 0, warning('Mission arguments are empty. Returning an uninitialized component...'); end
+            if isempty(mission.name), return;  end
             if ~isstruct(varsIn) && varsIn == 0
                 obj.loadConfig(); 
             else
diff --git a/classes/components/Environment.m b/classes/components/Environment.m
index 35c2c91d75af6e301d39717bed19bed881973a9f..41ebd8b3e6b9d92dad62e84ced75d27b6bcb4692 100644
--- a/classes/components/Environment.m
+++ b/classes/components/Environment.m
@@ -27,6 +27,20 @@ classdef Environment < Component
         motor Motor
     end
 
+    methods
+        function obj = Environment(mission, motor, varIn)
+            arguments(Input)
+                mission Mission = Mission()
+                motor Motor = Motor()
+                varIn = 0
+            end
+            if nargin > 0 && nargin < 2, error('Too few arguments. Type help for more info'); end
+            if nargin > 3, error('Too many arguments.'); end
+            obj@Component(mission, varIn);
+            obj.motor = motor;
+        end
+    end
+
     methods
         function g0 = get.g0(obj)
             g0 = gravitywgs84(obj.z0, obj.lat0);