diff --git a/T2/models.rb b/T2/models.rb
index 23d507eae070b024e5e1ce7f6c84d8682c88fb3b..eabc3e3b2bea12e1056301bc9693afd3c5db3195 100644
--- a/T2/models.rb
+++ b/T2/models.rb
@@ -4,13 +4,14 @@ ActiveRecord::Base.establish_connection :adapter => "sqlite3",
                                         :database => "steamdb.sqlite3" 
 
 class Game < ActiveRecord::Base; 
-	has_one :price
+	has_one :price, dependent: :destroy
 	belongs_to :developer
-	has_and_belongs_to_many :categories
+	has_many :category_games
+	has_many :categories, through: :category_games, dependent: :destroy
 end
 
 class Developer < ActiveRecord::Base; 
-	has_many :games
+	has_many :games, dependent: :destroy
 end
 
 class Price < ActiveRecord::Base;
@@ -18,5 +19,11 @@ class Price < ActiveRecord::Base;
 end
 
 class Category < ActiveRecord::Base;
-	has_and_belongs_to_many :games
+	has_many :category_games
+	has_many :games, through: :category_games, dependent: :destroy
+end
+
+class CategoryGame < ActiveRecord::Base;
+	belongs_to :category 
+	belongs_to :game
 end
\ No newline at end of file
diff --git a/T2/schema.rb b/T2/schema.rb
index 50c94c6c80e6aa9e4387f55a43bac4612e5d5f9e..7383aa8cebd5a354a5923cdde921d5d1e519c5f4 100644
--- a/T2/schema.rb
+++ b/T2/schema.rb
@@ -28,7 +28,7 @@ ActiveRecord::Base.connection.create_table :categories do |t|
   t.text :description
 end
 
-ActiveRecord::Base.connection.create_table :categories_games, id: false do |t|
+ActiveRecord::Base.connection.create_table :category_games, id: false do |t|
   t.references :category
   t.references :game
-end
\ No newline at end of file
+end
diff --git a/T2/steamdb.rb b/T2/steamdb.rb
index f0bb322b622bece58b52b6af2f9f5d59c11c93bf..7284e2ff4d1a3a025eaca76702f35c5dfebd05c1 100644
--- a/T2/steamdb.rb
+++ b/T2/steamdb.rb
@@ -1,359 +1,488 @@
 require './models.rb'
 
 def is_a_string (string)
-	string.start_with?('"') && string.end_with?('"') ? true : false
+  string.start_with?('"') && string.end_with?('"') ? true : false
 end
 
 def is_a_integer (integer)
-	integer =~ /\A\d+\z/ ? true : false
+  integer =~ /\A\d+\z/ ? true : false
 end
 
 def insere(tabela, args)
-	error = false
-	case tabela 
-	when "developers"
-		dev = Developer.new ()
-		args.each do |x|
-			x = x.split("=")
-			case x[0] 
-			when "name"
-				if is_a_string(x[1])
-					dev.name = x[1].tr('"','');
-				else 
-					puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
-					error = true
-				end
-			when "country"
-				if is_a_string(x[1])
-					dev.country = x[1].tr('"','')
-				else 
-					puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
-					error = true
-				end
-			else
-				puts "Atributo #{x[0]} não encontrado."
-				error = true
-			end
-			next
-		end 
-		if (!error)
-			dev.save
-			puts "Linha inserida na tabela #{tabela}."
-		end
-	when "games"
-		game = Game.new ()
-		args.each do |x|
-			x = x.split("=")
-			case x[0] 
-			when "name"
-				if is_a_string(x[1])
-					game.name = x[1];
-				else 
-					puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
-					error = true
-				end
-			when "description"
-				if is_a_string(x[1])
-					game.description = x[1]
-				else
-					puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
-					error = true
-				end					
-			when "is_released"
-				if x[1] === "true" || x[1] === "false"
-					game.is_released = x[1] === "true" ? true : false
-				else 
-					puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
-					error = true
-				end		
-			when "developer_id"
-				if is_a_integer(x[1]) 
-					game.developer_id = x[1]
-				else 
-					puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
-					error = true
-				end
-			else
-				puts "Atributo #{x[0]} não encontrado."
-				error = true
-			end
-			next
-		end 
-		if (!error)
-			game.save
-			puts "Linha inserida na tabela #{tabela}."
-		end
-	when "prices"
-		price = Price.new ()
-		args.each do |x|
-			x = x.split("=")
-			case x[0]
-			when "price_us"
-				if is_a_integer(x[1]) 
-					price.price_us = x[1]
-				else 
-					puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
-					error = true
-				end
-			when "price_br"
-				if is_a_integer(x[1]) 
-					price.price_br = x[1]
-				else 
-					puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
-					error = true
-				end
-			when "price_ru"
-				if is_a_integer(x[1]) 
-					price.price_ru = x[1]
-				else 
-					puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
-					error = true
-				end
-			when "game_id"
-				if is_a_integer(x[1]) 
-					price.game_id = x[1]
-				else 
-					puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
-					error = true
-				end
-			else 
-				puts "Atributo #{x[0]} não encontrado."
-				error = true
-			end
-			next
-		end
-		if (!error)
-			price.save
-			puts "Linha inserida na tabela #{tabela}."
-		end
-	when "categories"
-		category = Category.new ()
-		args.each do |x|
-			x = x.split("=")
-			case x[0] 
-			when "name"
-				if is_a_string(x[1])
-					category.name = x[1];
-				else 
-					puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
-					error = true
-				end
-			when "description"
-				if is_a_string(x[1])
-					category.description = x[1]
-				else 
-					puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
-					error = true
-				end
-			else
-				puts "Atributo #{x[0]} não encontrado."
-				error = true
-			end
-			next
-		end 
-		if (!error)
-			category.save
-			puts "Linha inserida na tabela #{tabela}."
-		end
-	when "categories_games"
-		category_game = CategoryGame.new ()
-		args.each do |x|
-			x = x.split("=")
-			case x[0] 
-			when "category_id"
-				if is_a_integer(x[1])
-					category_game.category_id = x[1];
-				else 
-					puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
-					error = true
-				end
-			when "game_id"
-				if is_a_integer(x[1])
-					category_game.game_id = x[1]
-				else
-					puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
-					error = true
-				end
-			else
-				puts "Atributo #{x[0]} não encontrado."
-				error = true
-			end
-			next
-		end 
-		if (!error)
-			category_game.save
-			puts "Linha inserida na tabela #{tabela}."
-		end
-	else
-		puts "Tabela #{tabela} não encontrada."
-	end
+  error = false
+  case tabela 
+  when "developers"
+    dev = Developer.new ()
+    args.each do |x|
+      x = x.split("=")
+      case x[0] 
+      when "name"
+        if is_a_string(x[1])
+          dev.name = x[1].tr('"','');
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
+          error = true
+        end
+      when "country"
+        if is_a_string(x[1])
+          dev.country = x[1].tr('"','')
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
+          error = true
+        end
+      else
+        puts "Atributo #{x[0]} não encontrado."
+        error = true
+      end
+      next
+    end 
+    if (!error)
+      dev.save
+      puts "Linha inserida na tabela #{tabela}."
+    end
+  when "games"
+    game = Game.new ()
+    args.each do |x|
+      x = x.split("=")
+      case x[0] 
+      when "name"
+        if is_a_string(x[1])
+          game.name = x[1].tr('"','')
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
+          error = true
+        end
+      when "description"
+        if is_a_string(x[1])
+          game.description = x[1].tr('"','')
+        else
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
+          error = true
+        end         
+      when "is_released"
+        if x[1] === "true" || x[1] === "false"
+          game.is_released = x[1] === "true" ? true : false
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
+          error = true
+        end   
+      when "developer_id"
+        if is_a_integer(x[1]) 
+          game.developer_id = x[1]
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
+          error = true
+        end
+      else
+        puts "Atributo #{x[0]} não encontrado."
+        error = true
+      end
+      next
+    end 
+    if (!error)
+      game.save
+      puts "Linha inserida na tabela #{tabela}."
+    end
+  when "prices"
+    price = Price.new ()
+    args.each do |x|
+      x = x.split("=")
+      case x[0]
+      when "price_us"
+        if is_a_integer(x[1]) 
+          price.price_us = x[1]
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
+          error = true
+        end
+      when "price_br"
+        if is_a_integer(x[1]) 
+          price.price_br = x[1]
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
+          error = true
+        end
+      when "price_ru"
+        if is_a_integer(x[1]) 
+          price.price_ru = x[1]
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
+          error = true
+        end
+      when "game_id"
+        if is_a_integer(x[1]) 
+          price.game_id = x[1]
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
+          error = true
+        end
+      else 
+        puts "Atributo #{x[0]} não encontrado."
+        error = true
+      end
+      next
+    end
+    if (!error)
+      price.save
+      puts "Linha inserida na tabela #{tabela}."
+    end
+  when "categories"
+    category = Category.new ()
+    args.each do |x|
+      x = x.split("=")
+      case x[0] 
+      when "name"
+        if is_a_string(x[1])
+          category.name = x[1].tr('"','')
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
+          error = true
+        end
+      when "description"
+        if is_a_string(x[1])
+          category.description = x[1].tr('"','')
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
+          error = true
+        end
+      else
+        puts "Atributo #{x[0]} não encontrado."
+        error = true
+      end
+      next
+    end 
+    if (!error)
+      category.save
+      puts "Linha inserida na tabela #{tabela}."
+    end
+  when "category_games"
+    category_game = CategoryGame.new ()
+    args.each do |x|
+      x = x.split("=")
+      case x[0] 
+      when "category_id"
+        if is_a_integer(x[1])
+          category_game.category_id = x[1];
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
+          error = true
+        end
+      when "game_id"
+        if is_a_integer(x[1])
+          category_game.game_id = x[1]
+        else
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}!"
+          error = true
+        end
+      else
+        puts "Atributo #{x[0]} não encontrado."
+        error = true
+      end
+      next
+    end 
+    if (!error)
+      category_game.save
+      puts "Linha inserida na tabela #{tabela}."
+    end
+  else
+    puts "Tabela #{tabela} não encontrada."
+  end
 end
 
 def exclui(tabela, args)
-	to_be_deleted = nil
-	error = false
-	case tabela
-	when "developers"
-		to_be_deleted = Developer.all
-		puts to_be_deleted
-		args.each do |x|
-			x = x.split("=")
-			case x[0]
-			when "name"
-				if is_a_string(x[1])
-					to_be_deleted = to_be_deleted.select {|delete| delete.name == x[1].tr('"','')}
-				else 
-					puts "Erro de Síntaxe: Valor inválido para #{{x[0]}}"
-					error = true
-				end
-			when "country"
-				if is_a_string(x[1])
-					to_be_deleted = to_be_deleted.select {|delete| delete.country == x[1].tr('"','')}
-				else 
-					puts "Erro de Síntaxe: Valor inválido para #{{x[0]}}"
-					error = true
-				end
-			else 
-				puts "Atributo #{x[0]} não encontrado."
-				error = true
-			end
-			next
-		end
-		if to_be_deleted.length > 0
-			to_be_deleted.each do |d| 
-				d.delete
-			end
-		end
-	when "games"
-		to_be_deleted = Game.all
-		puts to_be_deleted
-		args.each do |x|
-			x = x.split("=")
-			case x[0]
-			when "name"
-				if is_a_string(x[1])
-					to_be_deleted = to_be_deleted.select {|delete| delete.name == x[1].tr('"','')}
-				else 
-					puts "Erro de Síntaxe: Valor inválido para #{{x[0]}}"
-					error = true
-				end
-			when "description"
-				if is_a_string(x[1])
-					to_be_deleted = to_be_deleted.select {|delete| delete.country == x[1].tr('"','')}
-				else 
-					puts "Erro de Síntaxe: Valor inválido para #{{x[0]}}"
-					error = true
-				end
-			when "is_released"
-				if x[1] === "true" || x[1] === "false"
-					to_be_deleted = to_be_deleted.select {|delete| (delete.is_released == (x[1] === "true" ? true : false))}
-				else 
-					puts "Erro de Síntaxe: Valor inválido para #{{x[0]}}"
-					error = true
-				end
-			when "description"
-				if is_a_integer(x[1])
-					to_be_deleted = to_be_deleted.select {|delete| delete.developer_id == x[1]}
-				else 
-					puts "Erro de Síntaxe: Valor inválido para #{{x[0]}}"
-					error = true
-				end
-			else 
-				puts "Atributo #{x[0]} não encontrado."
-				error = true
-			end
-			next
-		end
-		if to_be_deleted.length > 0
-			to_be_deleted.each do |d| 
-				d.delete
-			end
-		end
-	when "prices"
-
-	when "categories"
-
-	when "categories_games"
-
-	else
-		puts "Tabela #{tabela} não encontrada."
-	end
+  to_be_deleted = nil
+  error = false
+  case tabela
+  when "developers"
+    to_be_deleted = Developer.all
+    args.each do |x|
+      x = x.split("=")
+      case x[0]
+      when "id"
+        if (is_a_integer(x[1]))
+          to_be_deleted = to_be_deleted.select {|delete| delete.id == x[1].to_i}
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}"
+          error = true
+        end
+      when "name"
+        if is_a_string(x[1])
+          to_be_deleted = to_be_deleted.select {|delete| delete.name == x[1].tr('"','')}
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}"
+          error = true
+        end
+      when "country"
+        if is_a_string(x[1])
+          to_be_deleted = to_be_deleted.select {|delete| delete.country == x[1].tr('"','')}
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}"
+          error = true
+        end
+      else 
+        puts "Atributo #{x[0]} não encontrado."
+        error = true
+      end
+      next
+    end
+    if to_be_deleted.length > 0
+      to_be_deleted.each do |d| 
+        d.destroy
+      end
+    end
+  when "games"
+    to_be_deleted = Game.all
+    args.each do |x|
+      x = x.split("=")
+      case x[0]
+      when "id"
+        if (is_a_integer(x[1]))
+          to_be_deleted = to_be_deleted.select {|delete| delete.id == x[1].to_i}
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}"
+          error = true
+        end
+      when "name"
+        if is_a_string(x[1])
+          to_be_deleted = to_be_deleted.select {|delete| delete.name == x[1].tr('"','')}
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}"
+          error = true
+        end
+      when "description"
+        if is_a_string(x[1])
+          to_be_deleted = to_be_deleted.select {|delete| delete.country == x[1].tr('"','')}
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}"
+          error = true
+        end
+      when "is_released"
+        if x[1] === "true" || x[1] === "false"
+          to_be_deleted = to_be_deleted.select {|delete| (delete.is_released == (x[1] === "true" ? true : false))}
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}"
+          error = true
+        end
+      when "developer_id"
+        if is_a_integer(x[1])
+          to_be_deleted = to_be_deleted.select {|delete| delete.developer_id == x[1].to_i}
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}"
+          error = true
+        end
+      else 
+        puts "Atributo #{x[0]} não encontrado."
+        error = true
+      end
+      next
+    end
+    if to_be_deleted.length > 0
+      to_be_deleted.each do |d| 
+        d.destroy
+      end
+    end
+  when "prices"
+    to_be_deleted = Price.all
+    args.each do |x|
+      x = x.split("=")
+      case x[0]
+      when "id"
+        if (is_a_integer(x[1]))
+          to_be_deleted = to_be_deleted.select {|delete| delete.id == x[1].to_i}
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}"
+          error = true
+        end  
+      when "price_us"
+      	if is_a_integer(x[1])
+      	  to_be_deleted = to_be_deleted.select {|delete| delete.price_us == x[1].to_i}
+      	else 
+      	  puts "Erro de Síntaxe: valor inválido para #{x[0]}"
+      	  error = true
+      	end
+      when "price_br"
+      	if is_a_integer(x[1])
+      	  to_be_deleted = to_be_deleted.select {|delete| delete.price_br == x[1].to_i}
+      	else 
+      	  puts "Erro de Síntaxe: valor inválido para #{x[0]}"
+      	  error = true
+      	end
+      when "price_ru"
+      	if is_a_integer(x[1])
+      	  to_be_deleted = to_be_deleted.select {|delete| delete.price_ru == x[1].to_i}
+      	else 
+      	  puts "Erro de Síntaxe: valor inválido para #{x[0]}"
+      	  error = true
+      	end
+      when "game_id"
+      	if is_a_integer(x[1])
+      	  to_be_deleted = to_be_deleted.select {|delete| delete.game_id == x[1].to_i}
+      	else 
+      	  puts "Erro de Síntaxe: valor inválido para #{x[0]}"
+      	  error = true
+      	end
+      else 
+      	puts "Atributo #{x[0]} não encontrado."
+      	error = true;
+      end
+      next
+    end
+    if to_be_deleted.length > 0
+      to_be_deleted.each do |d|
+        d.destroy
+      end
+    end
+  when "categories"
+    to_be_deleted = Category.all
+    args.each do |x|
+      x = x.split("=")
+      case x[0]
+      when "id"
+        if (is_a_integer(x[1]))
+          to_be_deleted = to_be_deleted.select {|delete| delete.id == x[1].to_i}
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}"
+          error = true
+        end
+      when "name"
+        if is_a_string(x[1])
+          to_be_deleted = to_be_deleted.select {|delete| delete.name == x[1].tr('"','')}
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}"
+          error = true
+        end
+      when "description"
+        if is_a_string(x[1])
+          to_be_deleted = to_be_deleted.select {|delete| delete.name == x[1].tr('"','')}
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}"
+          error = true
+        end
+      else 
+        puts "Atributo #{x[0]} não encontrado."
+        error = true;
+      end
+      next
+    end
+    if to_be_deleted.length > 0
+      to_be_deleted.each do |d|
+        d.destroy
+      end
+    end
+  when "category_games"
+    to_be_deleted = CategoryGame.all
+    args.each do |x|
+      x = x.split("=")
+      case x[0]
+      when "category_id"
+        if (is_a_integer(x[1]))
+          to_be_deleted = to_be_deleted.select {|delete| delete.category_id == x[1].to_i}
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}"
+          error = true
+        end
+      when "game_id"
+        if (is_a_integer(x[1]))
+          to_be_deleted = to_be_deleted.select {|delete| delete.category_id == x[1].to_i}
+        else 
+          puts "Erro de Síntaxe: Valor inválido para #{x[0]}"
+          error = true
+        end
+      else 
+        puts "Atributo #{x[0]} não encontrado."
+        error = true;
+      end
+      next
+    end
+    if to_be_deleted.length > 0
+      to_be_deleted.each do |d|
+        d.destroy
+      end
+    end
+  else
+    puts "Tabela #{tabela} não encontrada."
+  end
 end
 
 def altera(tabela)
-	case tabela
-	when "developers"
-		#???????? como alterar? sintaxe do comando
-	when "games"
+  case tabela
+  when "developers"
+    #???????? como alterar? sintaxe do comando
+  when "games"
 
-	when "prices"
+  when "prices"
 
-	when "categories"
+  when "categories"
 
-	when "categories_games"
+  when "category_games"
 
-	else
-		puts "Tabela #{tabela} não encontrada."
-	end
+  else
+    puts "Tabela #{tabela} não encontrada."
+  end
 end
 
 def lista(tabela)
-	case tabela
-	when "developers"
-		lista = Developer.all
-		lista.each do |l| 
-			puts "#{l.id}|#{l.name}|#{l.country}"
-		end
-	when "games"
-		lista = Game.all
-		lista.each do |l| 
-			puts "#{l.id}|#{l.name}|#{l.description}|#{l.is_released}|#{l.developer_id}|#{l.price_id}"
-		end		
-	when "prices"
-		lista = Price.all
-		lista.each do |l| 
-			puts "#{l.id}|#{l.price_us}|#{l.price_br}|#{l.price_ru}|#{l.game_id}"
-		end
-	when "categories"
-		lista = Category.all
-		lista.each do |l| 
-			puts "#{l.id}|#{l.name}|#{l.description}"
-		end
-	when "categories_games"
-		lista = CategoryGame.all
-		lista.each do |l| 
-			puts "#{l.id}|#{l.category_id}|#{l.game_id}"
-		end
-	else
-		puts "Tabela #{tabela} não encontrada."
-	end
-	if (tabela)	
-		puts "Tabela #{tabela} listada com sucesso!"
-	end
+  case tabela
+  when "developers"
+    lista = Developer.all
+    puts "id|name|country"
+    lista.each do |l| 
+      puts "#{l.id}|#{l.name}|#{l.country}"
+    end
+  when "games"
+    lista = Game.all
+    puts "id|name|description|is_released|developer_id"
+    lista.each do |l| 
+      puts "#{l.id}|#{l.name}|#{l.description}|#{l.is_released}|#{l.developer_id}"
+    end   
+  when "prices"
+    lista = Price.all
+    puts "id|price_us|price_br|price_ru|game_id"
+    lista.each do |l| 
+      puts "#{l.id}|#{l.price_us}|#{l.price_br}|#{l.price_ru}|#{l.game_id}"
+    end
+  when "categories"
+    lista = Category.all
+    puts "id|name|description"
+    lista.each do |l| 
+      puts "#{l.id}|#{l.name}|#{l.description}"
+    end
+  when "category_games"
+    lista = CategoryGame.all
+    puts "category_id|game_id"
+    lista.each do |l| 
+      puts "#{l.category_id}|#{l.game_id}"
+    end
+  else
+    puts "Tabela #{tabela} não encontrada."
+  end
+  if (tabela) 
+    puts "Tabela #{tabela} listada com sucesso!"
+  end
 end
 
 puts "Olá! Seja bem vindo ao SteamDB!"
 
 while true do
-	args = gets.split(" ")
+  args = gets.split(" ")
 
-	case args[0]
-	when "insere"
-		insere(args[1],args[2..args.length-1])
-	when "exclui"
-		exclui(args[1],args[2..args.length-1])
-	when "altera"
-		altera(args[1],args[2..args.length-1])
-	when "lista"
-		lista(args[1])
-	when "sair"
-		exit()
-	else 
-		puts "Comando não encontrado."
-	end
+  case args[0]
+  when "insere"
+    insere(args[1],args[2..args.length-1])
+  when "exclui"
+    exclui(args[1],args[2..args.length-1])
+  when "altera"
+    altera(args[1],args[2..args.length-1])
+  when "lista"
+    lista(args[1])
+  when "sair"
+    exit()
+  else 
+    puts "Comando não encontrado."
+  end
 end
 
 
 # 1 x n = 1 usuário tendo vários jogos
 # 1 x 1 = 1 jogo só tem 1 tabela de preços (preços por país)
-# n x n = vários jogos tem várias categorias
\ No newline at end of file
+# n x n = vários jogos tem várias categorias