diff --git a/app/assets/javascripts/management/object_types.coffee b/app/assets/javascripts/management/object_types.coffee
deleted file mode 100644
index 24f83d18bbd38c24c4f7c3c2fc360cd68e857a2a..0000000000000000000000000000000000000000
--- a/app/assets/javascripts/management/object_types.coffee
+++ /dev/null
@@ -1,3 +0,0 @@
-# Place all the behaviors and hooks related to the matching controller here.
-# All this logic will automatically be available in application.js.
-# You can use CoffeeScript in this file: http://coffeescript.org/
diff --git a/app/assets/stylesheets/management/object_types.scss b/app/assets/stylesheets/management/object_types.scss
deleted file mode 100644
index 50fa99926838dd5a5ace0e1740788e8de9883451..0000000000000000000000000000000000000000
--- a/app/assets/stylesheets/management/object_types.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-// Place all the styles related to the management/object_types controller here.
-// They will automatically be included in application.css.
-// You can use Sass (SCSS) here: http://sass-lang.com/
diff --git a/app/controllers/management/mime_types_controller.rb b/app/controllers/management/mime_types_controller.rb
new file mode 100644
index 0000000000000000000000000000000000000000..6f826068eb3b678037ee3086816e9acc86d2b001
--- /dev/null
+++ b/app/controllers/management/mime_types_controller.rb
@@ -0,0 +1,69 @@
+class Management::MimeTypesController < ManagementController
+  before_action :set_mime_type, only: [:edit, :update, :destroy]
+
+  # GET /management/mime_types
+  # GET /management/mime_types.json
+  def index
+    @mime_types = ::MimeType.all
+  end
+
+  # GET /management/mime_types/new
+  def new
+    @mime_type = ::MimeType.new
+  end
+
+  # GET /management/mime_types/1/edit
+  def edit
+  end
+
+  # POST /management/mime_types
+  # POST /management/mime_types.json
+  def create
+    @mime_type = ::MimeType.new(mime_type_params)
+
+    respond_to do |format|
+      if @mime_type.save
+        format.html { redirect_to management_mime_types_path, notice: 'Mime type criado com sucesso.' }
+        format.json { render :show, status: :created, location: @mime_type }
+      else
+        format.html { render :new }
+        format.json { render json: @mime_type.errors, status: :unprocessable_entity }
+      end
+    end
+  end
+
+  # PATCH/PUT /management/mime_types/1
+  # PATCH/PUT /management/mime_types/1.json
+  def update
+    respond_to do |format|
+      if @mime_type.update(mime_type_params)
+        format.html { redirect_to management_mime_types_path, notice: 'Mime type atualizado com sucesso.' }
+        format.json { render :show, status: :ok, location: @management_mime_type }
+      else
+        format.html { render :edit }
+        format.json { render json: @mime_type.errors, status: :unprocessable_entity }
+      end
+    end
+  end
+
+  # DELETE /management/mime_types/1
+  # DELETE /management/mime_types/1.json
+  def destroy
+    @mime_type.destroy
+    respond_to do |format|
+      format.html { redirect_to management_mime_types_url, notice: 'Mime Type destruido com sucesso.' }
+      format.json { head :no_content }
+    end
+  end
+
+  private
+    # Use callbacks to share common setup or constraints between actions.
+    def set_mime_type
+      @mime_type = ::MimeType.find(params[:id])
+    end
+
+    # Never trust parameters from the scary internet, only allow the white list through.
+    def mime_type_params
+      params.require(:mime_type).permit(:extension, :mime_type)
+    end
+end
diff --git a/app/controllers/management/object_types_controller.rb b/app/controllers/management/object_types_controller.rb
index b13a975d4b6e0a4be4d2f8fb8f884ca03195718b..64709f2013435db9818a8f97deaeab5f1a9e85c2 100644
--- a/app/controllers/management/object_types_controller.rb
+++ b/app/controllers/management/object_types_controller.rb
@@ -1,25 +1,29 @@
 class Management::ObjectTypesController < ManagementController
   before_action :set_management_object_type, only: [:edit, :update, :destroy]
+  before_action :get_mime_types, only: [:new, :edit]
 
   # GET /management/object_types
   # GET /management/object_types.json
   def index
-    @object_types = ::ObjectType.all
+    @object_types = ::ObjectType.includes(:mime_types).all
   end
 
   # GET /management/object_types/new
   def new
     @object_type = ::ObjectType.new
+    @selected = []
   end
 
   # GET /management/object_types/1/edit
   def edit
+    @selected = @object_type.mime_types.map { |mime_type| mime_type.id }
   end
 
+
   # POST /management/object_types
   # POST /management/object_types.json
   def create
-    @object_type = ::ObjectType.new(object_type_params)
+    @object_type = ::ObjectType.new(sanitazed_params)
 
     respond_to do |format|
       if @object_type.save
@@ -36,8 +40,8 @@ class Management::ObjectTypesController < ManagementController
   # PATCH/PUT /management/object_types/1.json
   def update
     respond_to do |format|
-      if @object_type.update(object_type_params)
-        format.html { redirect_to management_object_types_path, notice: 'Object type was successfully updated.' }
+      if @object_type.update(sanitazed_params)
+        format.html { redirect_to management_object_types_path, notice: 'Tipo de objeto atualizado com sucesso.' }
         format.json { render :show, status: :ok, location: management_object_types_path }
       else
         format.html { render :edit }
@@ -51,19 +55,36 @@ class Management::ObjectTypesController < ManagementController
   def destroy
     SafeObjectTypeDestroyService.execute @object_type
     respond_to do |format|
-      format.html { redirect_to management_object_types_url, notice: 'Object type was successfully destroyed.' }
+      format.html { redirect_to management_object_types_url, notice: 'Tipo de objeto destruido com sucesso.' }
       format.json { head :no_content }
     end
   end
 
   private
-    # Use callbacks to share common setup or constraints between actions.
-    def set_management_object_type
-      @object_type = ObjectType.find(params[:id])
-    end
 
-    # Never trust parameters from the scary internet, only allow the white list through.
-    def object_type_params
-      params.require(:object_type).permit(:name)
+  # Get all the mime types
+  def get_mime_types
+    @mime_types = MimeType.all
+  end
+  # Use callbacks to share common setup or constraints between actions.
+  def set_management_object_type
+    @object_type = ObjectType.find(params[:id])
+  end
+
+  # Never trust parameters from the scary internet, only allow the white list through.
+  def object_type_params
+    params.require(:object_type).permit(:name, mime_types: [])
+  end
+
+  # Build mimetypes
+  def sanitazed_params
+    _params = object_type_params
+    _params[:mime_types] = []
+    unless object_type_params[:mime_types].blank?
+      object_type_params[:mime_types].each do |mime_type|
+        _params[:mime_types] << MimeType.find(mime_type)
+      end
     end
+    _params
+  end
 end
diff --git a/app/helpers/management/object_types_helper.rb b/app/helpers/management/object_types_helper.rb
index 136947e491a79c1a576abf41d8833b78c302a2b5..19b4fe1383986675f5c274ad08a1d474dc5ff39a 100644
--- a/app/helpers/management/object_types_helper.rb
+++ b/app/helpers/management/object_types_helper.rb
@@ -2,4 +2,8 @@ module Management::ObjectTypesHelper
   def show_delete_button?(object_type)
     object_type.name =~ /outros/i ? false : true
   end
+
+  def mime_types(mime_types = [])
+    mime_types.map { |mime_type| mime_type.extension }.reduce { |i, ext| i + ', '+ ext }
+  end
 end
diff --git a/app/models/mime_type.rb b/app/models/mime_type.rb
new file mode 100644
index 0000000000000000000000000000000000000000..4aa9f72fc04926d9e63f56e978b7ca7e57644311
--- /dev/null
+++ b/app/models/mime_type.rb
@@ -0,0 +1,3 @@
+class MimeType < ActiveRecord::Base
+  has_and_belongs_to_many :object_types
+end
diff --git a/app/models/object_type.rb b/app/models/object_type.rb
index 7bc5dd427a3bb29093f4a457bb820008263b45c3..0aedd137ed47c2fdb9b1b9dbb8a797c498a5bfa0 100644
--- a/app/models/object_type.rb
+++ b/app/models/object_type.rb
@@ -1,5 +1,6 @@
 class ObjectType < ActiveRecord::Base
   has_many :learning_objects
+  has_and_belongs_to_many :mime_types
 
   validates_presence_of :name
   validates_uniqueness_of :name
diff --git a/app/services/safe_object_type_destroy_service.rb b/app/services/safe_object_type_destroy_service.rb
index d25ae86beac1e3e739013881ea3dd19bcbbf2db4..ab0bb89a4287e84c0b185d79eb001629b2158d42 100644
--- a/app/services/safe_object_type_destroy_service.rb
+++ b/app/services/safe_object_type_destroy_service.rb
@@ -2,7 +2,7 @@ class SafeObjectTypeDestroyService
 
   def self.execute(object_type)
     default_type = ObjectType.find_or_create_by(name: 'Outros')
-    object_type.learning_objects.each{|lo| lo.update_attribute(:object_type, default_type)}
+    LearningObject.where(object_type: object_type).update_all(object_type_id: default_type.id)
     object_type.destroy
   end
 
diff --git a/app/views/layouts/management.html.erb b/app/views/layouts/management.html.erb
index 5a31b893032b6d869c23a4737ff5e0e68f53a4b0..62fe8eeb76b4efbf9b1487eb4c0bc58250a96147 100644
--- a/app/views/layouts/management.html.erb
+++ b/app/views/layouts/management.html.erb
@@ -12,6 +12,8 @@
   <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
   <meta name="description" content="Insira aqui a descrição da página.">
 
+  <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.2/css/select2.min.css" rel="stylesheet" />
+  <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.2/js/select2.min.js"></script>
   <link rel="icon" sizes="192x192" href="<%= image_url 'ico-boilerplate.png' %>">
   <link rel="apple-touch-icon" href="<%= image_url 'ico-boilerplate.png' %>">
 </head>
diff --git a/app/views/management/mime_types/_form.html.erb b/app/views/management/mime_types/_form.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..8419a7d4f0ddb52f4daccb8f399753ccc5f1a256
--- /dev/null
+++ b/app/views/management/mime_types/_form.html.erb
@@ -0,0 +1,33 @@
+<%= form_for([:management, @mime_type]) do |f| %>
+  <% if @mime_type.errors.any? %>
+    <div id="error_explanation">
+      <h2><%= pluralize(@mime_type.errors.count, "error") %> prohibited this management_mime_type from being saved:</h2>
+
+      <ul>
+      <% @mime_type.errors.full_messages.each do |message| %>
+        <li><%= message %></li>
+      <% end %>
+      </ul>
+    </div>
+  <% end %>
+
+    <fieldset>
+      <label class="ls-label col-md-6">
+        <b class="ls-label-text">Extensões</b>
+
+        <p>Digite o nome do tipo</p>
+        <%= f.text_field :extension, {required: true} %>
+      </label>
+      <label class="ls-label col-md-6">
+        <b class="ls-label-text">MimeType</b>
+
+        <p>Digite o nome do mimetype</p>
+        <%= f.text_field :mime_type, {required: true} %>
+      </label>
+    </fieldset>
+
+    <div class="ls-actions-btn">
+      <button class="ls-btn">Salvar</button>
+      <%= link_to "Cancelar", management_mime_types_path,class: "ls-btn-danger"%>
+    </div>
+<% end %>
diff --git a/app/views/management/mime_types/edit.html.erb b/app/views/management/mime_types/edit.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..f95a6110e03f9e49ed5ad71a21f0ab6f3bb05434
--- /dev/null
+++ b/app/views/management/mime_types/edit.html.erb
@@ -0,0 +1,3 @@
+<h1>Editar Mime Type</h1>
+
+<%= render 'form' %>
\ No newline at end of file
diff --git a/app/views/management/mime_types/index.html.erb b/app/views/management/mime_types/index.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..79f73dcdeeb9c1a770545e0af537469d1f20ded9
--- /dev/null
+++ b/app/views/management/mime_types/index.html.erb
@@ -0,0 +1,25 @@
+<h1 class="ls-title-intro ls-ico-list2">Tipos de Objetos</h1>
+<a href="<%= new_management_mime_type_path %>" class="ls-btn-primary" aria-expanded="false" role="combobox">Cadastrar novo</a>
+<table class="ls-table">
+  <thead>
+  <tr>
+    <th>Nome</th>
+    <th>MimeType</th>
+    <th></th>
+    <th></th>
+  </tr>
+  </thead>
+
+  <tbody>
+  <% @mime_types.each do |mime_type| %>
+      <tr>
+        <td><%= mime_type.extension %></td>
+        <td><%= mime_type.mime_type %></td>
+        <td class="ls-txt-right ls-regroup"><%= link_to 'Editar', edit_management_mime_type_path(mime_type) %>
+        <td>
+          <%= link_to 'Excluir', management_mime_type_path(mime_type), method: :delete, data: { confirm: 'Você tem certeza?' }, class:'ls-btn-danger ls-ico-close' %>
+        </td>
+      </tr>
+  <% end %>
+  </tbody>
+</table>
\ No newline at end of file
diff --git a/app/views/management/mime_types/index.json.jbuilder b/app/views/management/mime_types/index.json.jbuilder
new file mode 100644
index 0000000000000000000000000000000000000000..ad7a3f10f2b318b2cfca2cd9a0fe80d88f0d5f52
--- /dev/null
+++ b/app/views/management/mime_types/index.json.jbuilder
@@ -0,0 +1,4 @@
+json.array!(@management_mime_types) do |management_mime_type|
+  json.extract! management_mime_type, :id
+  json.url management_mime_type_url(management_mime_type, format: :json)
+end
diff --git a/app/views/management/mime_types/new.html.erb b/app/views/management/mime_types/new.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..32dee4e7069520326033c2ab3c1b05ee62ebc219
--- /dev/null
+++ b/app/views/management/mime_types/new.html.erb
@@ -0,0 +1,7 @@
+<h1 class="ls-title-intro ls-ico-list2">MimeType</h1>
+
+<ol class="ls-breadcrumb">
+  <li><%= link_to 'MimeTypes', management_mime_types_path%></li>
+  <li>Novo MimeType</li>
+</ol>
+<%= render 'form' %>
\ No newline at end of file
diff --git a/app/views/management/mime_types/show.html.erb b/app/views/management/mime_types/show.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..6ba77c166568d01a8f9a8d832bed474210d0ce14
--- /dev/null
+++ b/app/views/management/mime_types/show.html.erb
@@ -0,0 +1,4 @@
+<p id="notice"><%= notice %></p>
+
+<%= link_to 'Edit', edit_management_mime_type_path(@management_mime_type) %> |
+<%= link_to 'Back', management_mime_types_path %>
diff --git a/app/views/management/mime_types/show.json.jbuilder b/app/views/management/mime_types/show.json.jbuilder
new file mode 100644
index 0000000000000000000000000000000000000000..2ac13213098d6509c92f0ab61466fed14efadaa1
--- /dev/null
+++ b/app/views/management/mime_types/show.json.jbuilder
@@ -0,0 +1 @@
+json.extract! @management_mime_type, :id, :created_at, :updated_at
diff --git a/app/views/management/object_types/_form.html.erb b/app/views/management/object_types/_form.html.erb
index 0bd6667dee5cddf3feab2aa34e45f30e43a78ec0..7cb97dfb5a330720c731e6aae0ae133a9aa66ad0 100644
--- a/app/views/management/object_types/_form.html.erb
+++ b/app/views/management/object_types/_form.html.erb
@@ -12,12 +12,29 @@
     <% end %>
 
     <fieldset>
+
       <label class="ls-label col-md-6">
         <b class="ls-label-text">Nome</b>
 
         <p>Digite o nome do tipo</p>
         <%= f.text_field :name, {required: true} %>
       </label>
+
+      <label class="ls-label col-md-6">
+        <b class="ls-label-text">MimeTypes</b>
+
+        <p>Selecione os mimetypes</p><br>
+        <select id='mimeTypes' name="object_type[mime_types][]" multiple>
+          <%= @mime_types.each do |t| %>
+              <% if @selected.include? t.id  %>
+                  <option value='<%= t.id %>' selected><%= t.extension %></option>
+              <% else %>
+                  <option value='<%= t.id %>'><%= t.extension %></option>
+              <% end %>
+          <% end %>
+        </select>
+      </label>
+
     </fieldset>
 
     <div class="ls-actions-btn">
@@ -25,3 +42,9 @@
       <%= link_to "Cancelar", management_object_types_path,class: "ls-btn-danger"%>
     </div>
 <% end %>
+<script>
+  $("#mimeTypes").select2({
+    placeholder: "MimeTypes",
+    width: '100%'
+  });
+</script>
\ No newline at end of file
diff --git a/app/views/management/object_types/edit.html.erb b/app/views/management/object_types/edit.html.erb
index f3e56a92b08424cd65a82ff019c6cd3962476893..1d101139a3ea74f9849ca9e353075714408ef4b7 100644
--- a/app/views/management/object_types/edit.html.erb
+++ b/app/views/management/object_types/edit.html.erb
@@ -1,6 +1,3 @@
-<h1>Editing Management Object Type</h1>
+<h1>Editar Tipo de Objeto</h1>
 
-<%= render 'form' %>
-
-<%= link_to 'Show', @management_object_type %> |
-<%= link_to 'Back', management_object_types_path %>
+<%= render 'form' %>
\ No newline at end of file
diff --git a/app/views/management/object_types/index.html.erb b/app/views/management/object_types/index.html.erb
index 4cb3775fee40a9716f845bb6514f3826224bcdc8..4b57a1e91240f225c4d792fe49814d503cc8bd05 100644
--- a/app/views/management/object_types/index.html.erb
+++ b/app/views/management/object_types/index.html.erb
@@ -4,6 +4,12 @@
   <thead>
   <tr>
     <th>Nome</th>
+    <th>
+      Extensões&nbsp
+      <a style="text-decoration: none;" href="#" data-toggle="popover" title="Informação" data-trigger="hover" data-content="Tipos de objetos sem extensões aceitam todos os tipos de mimetypes">
+        <i class="ls-ico-info"></i>
+      </a>
+    </th>
     <th></th>
     <th></th>
   </tr>
@@ -13,6 +19,7 @@
   <% @object_types.each do |object_type| %>
       <tr>
         <td><%= object_type.name %></td>
+        <td><%= mime_types object_type.mime_types %></td>
         <td class="ls-txt-right ls-regroup"><%= link_to 'Editar', edit_management_object_type_path(object_type) %>
         <td>
           <% if show_delete_button? object_type %>
@@ -23,6 +30,11 @@
   <% end %>
   </tbody>
 </table>
+<script>
+  $(document).ready(function(){
+    $('[data-toggle="popover"]').popover();
+  });
+</script>
 
 
 
diff --git a/app/views/shared/management/_nav_menu.html.erb b/app/views/shared/management/_nav_menu.html.erb
index 5abce7779ac4f407f94422286560769720be08bd..ef5dd61dae608a2e8cc67fcdf59fae6ed74965f1 100644
--- a/app/views/shared/management/_nav_menu.html.erb
+++ b/app/views/shared/management/_nav_menu.html.erb
@@ -33,7 +33,13 @@
       </ul>
     </li>
     <li> <%= link_to "Escore", management_scores_path, class: 'ls-ico-bars' %> </li>
-    <li> <%= link_to "Tipos de Objetos", management_object_types_path, class: 'ls-ico-pencil2' %> </li>
+    <li class="ls-submenu">
+      <a href="#" class="ls-ico-pencil2">Objetos Educacionais</a>
+      <ul role="menu">
+        <li> <%= link_to "Tipos de Objetos", management_object_types_path, class: '' %> </li>
+        <li> <%= link_to "MimeTypes", management_mime_types_path, class: '' %> </li>
+      </ul>
+    </li>
     <li> <%= link_to "Voltar ao Portal", root_path, class: 'ls-ico-chevron-left' %> </li>
   </ul>
 
diff --git a/config/routes.rb b/config/routes.rb
index dfa66bc2cdddcd67db69b289aaa3f1b1b05ecec8..87ec841c5c042439200cb657238179ec9bda8f71 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -26,6 +26,7 @@ Rails.application.routes.draw do
     resources :learning_objects, only: [:index]
     resources :scores, :score_user_categories, :user_categories
     resources :object_types, except: :show
+    resources :mime_types, except: :show
 
     resources :statistics do
       collection do
diff --git a/db/migrate/20160310121839_create_mime_types.rb b/db/migrate/20160310121839_create_mime_types.rb
new file mode 100644
index 0000000000000000000000000000000000000000..4b5ecbad1bf99a98c2ba283f6f550e7c44ee9e81
--- /dev/null
+++ b/db/migrate/20160310121839_create_mime_types.rb
@@ -0,0 +1,8 @@
+class CreateMimeTypes < ActiveRecord::Migration
+  def change
+    create_table :mime_types do |t|
+      t.string :extension
+      t.string :mime_type
+    end
+  end
+end
diff --git a/db/migrate/20160310124058_remove_mime_types_from_object_types.rb b/db/migrate/20160310124058_remove_mime_types_from_object_types.rb
new file mode 100644
index 0000000000000000000000000000000000000000..22f7df4a07088f751ae6e534e21babcbf988aa02
--- /dev/null
+++ b/db/migrate/20160310124058_remove_mime_types_from_object_types.rb
@@ -0,0 +1,5 @@
+class RemoveMimeTypesFromObjectTypes < ActiveRecord::Migration
+  def change
+    remove_column :object_types, :mime_type, :string
+  end
+end
diff --git a/db/migrate/20160310124059_add_associations_to_object_types_and_mime_types.rb b/db/migrate/20160310124059_add_associations_to_object_types_and_mime_types.rb
new file mode 100644
index 0000000000000000000000000000000000000000..7cb48bc0ea04f2cf75ca2591ee2506f2e5e6f83f
--- /dev/null
+++ b/db/migrate/20160310124059_add_associations_to_object_types_and_mime_types.rb
@@ -0,0 +1,8 @@
+class AddAssociationsToObjectTypesAndMimeTypes < ActiveRecord::Migration
+  def change
+    create_table :mime_types_object_types do |t|
+      t.belongs_to :object_type, index: true
+      t.belongs_to :mime_type, index: true
+    end
+  end
+end