diff --git a/lib/ci/gitlab_ci_yaml_processor.rb b/lib/ci/gitlab_ci_yaml_processor.rb
index f0710690985fd38779650f0451fc81345b94caf3..1ffbd0020bb55e1da78c737373bf918db6805f30 100644
--- a/lib/ci/gitlab_ci_yaml_processor.rb
+++ b/lib/ci/gitlab_ci_yaml_processor.rb
@@ -57,6 +57,9 @@ module Ci
     private
 
     def initial_parsing
+      ##
+      # Global config
+      #
       @before_script = @ci_config.before_script
       @image = @ci_config.image
       @after_script = @ci_config.after_script
@@ -65,24 +68,16 @@ module Ci
       @stages = @ci_config.stages
       @cache = @ci_config.cache
 
-      @jobs = {}
-
-      @ci_config.jobs.each do |name, param|
-        add_job(name, param)
-      end
+      ##
+      # Jobs
+      #
+      @jobs = @ci_config.jobs
 
       @jobs.each do |name, job|
         validate_job!(name, job)
       end
     end
 
-    def add_job(name, job)
-      raise ValidationError, "Unknown parameter: #{name}" unless job.is_a?(Hash) && job.has_key?(:script)
-
-      stage = job[:stage] || job[:type] || DEFAULT_STAGE
-      @jobs[name] = { stage: stage }.merge(job)
-    end
-
     def build_job(name, job)
       {
         stage_idx: @stages.index(job[:stage]),
@@ -112,12 +107,13 @@ module Ci
     end
 
     def validate_job!(name, job)
+      raise ValidationError, "Unknown parameter: #{name}" unless job.is_a?(Hash) && job.has_key?(:script)
+
       validate_job_name!(name)
       validate_job_keys!(name, job)
       validate_job_types!(name, job)
       validate_job_script!(name, job)
 
-      validate_job_stage!(name, job) if job[:stage]
       validate_job_variables!(name, job) if job[:variables]
       validate_job_cache!(name, job) if job[:cache]
       validate_job_artifacts!(name, job) if job[:artifacts]
@@ -186,12 +182,6 @@ module Ci
       end
     end
 
-    def validate_job_stage!(name, job)
-      unless job[:stage].is_a?(String) && job[:stage].in?(@stages)
-        raise ValidationError, "#{name} job: stage parameter should be #{@stages.join(", ")}"
-      end
-    end
-
     def validate_job_variables!(name, job)
       unless validate_variables(job[:variables])
         raise ValidationError,