diff --git a/Filtration.ObjectModel.Tests/Filtration.ObjectModel.Tests.csproj b/Filtration.ObjectModel.Tests/Filtration.ObjectModel.Tests.csproj
index 69dd6ef..62cfed3 100644
--- a/Filtration.ObjectModel.Tests/Filtration.ObjectModel.Tests.csproj
+++ b/Filtration.ObjectModel.Tests/Filtration.ObjectModel.Tests.csproj
@@ -66,6 +66,9 @@
   <ItemGroup>
     <None Include="packages.config" />
   </ItemGroup>
+  <ItemGroup>
+    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/Filtration.ObjectModel/BlockItemTypes/BackgroundColorBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/BackgroundColorBlockItem.cs
index 3765b3a..2e4bacd 100644
--- a/Filtration.ObjectModel/BlockItemTypes/BackgroundColorBlockItem.cs
+++ b/Filtration.ObjectModel/BlockItemTypes/BackgroundColorBlockItem.cs
@@ -16,6 +16,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
         public override string PrefixText => "SetBackgroundColor";
         public override int MaximumAllowed => 1;
         public override string DisplayHeading => "Background Color";
-        public override int SortOrder => 18;
+        public override int SortOrder => 21;
     }
 }
diff --git a/Filtration.ObjectModel/BlockItemTypes/BaseTypeBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/BaseTypeBlockItem.cs
index cb78a03..3eb1bf0 100644
--- a/Filtration.ObjectModel/BlockItemTypes/BaseTypeBlockItem.cs
+++ b/Filtration.ObjectModel/BlockItemTypes/BaseTypeBlockItem.cs
@@ -33,6 +33,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
 
         public override Color SummaryBackgroundColor => Colors.MediumTurquoise;
         public override Color SummaryTextColor => Colors.Black;
-        public override int SortOrder => 16;
+        public override int SortOrder => 18;
     }
 }
diff --git a/Filtration.ObjectModel/BlockItemTypes/BorderColorBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/BorderColorBlockItem.cs
index 3668f33..d308521 100644
--- a/Filtration.ObjectModel/BlockItemTypes/BorderColorBlockItem.cs
+++ b/Filtration.ObjectModel/BlockItemTypes/BorderColorBlockItem.cs
@@ -16,6 +16,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
         public override string PrefixText => "SetBorderColor";
         public override int MaximumAllowed => 1;
         public override string DisplayHeading => "Border Color";
-        public override int SortOrder => 19;
+        public override int SortOrder => 22;
     }
 }
diff --git a/Filtration.ObjectModel/BlockItemTypes/ClassBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/ClassBlockItem.cs
index 3da7e0a..ef5d250 100644
--- a/Filtration.ObjectModel/BlockItemTypes/ClassBlockItem.cs
+++ b/Filtration.ObjectModel/BlockItemTypes/ClassBlockItem.cs
@@ -33,6 +33,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
 
         public override Color SummaryBackgroundColor => Colors.MediumSeaGreen;
         public override Color SummaryTextColor => Colors.White;
-        public override int SortOrder => 15;
+        public override int SortOrder => 17;
     }
 }
diff --git a/Filtration.ObjectModel/BlockItemTypes/FontSizeBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/FontSizeBlockItem.cs
index 62feaf7..dcd47bf 100644
--- a/Filtration.ObjectModel/BlockItemTypes/FontSizeBlockItem.cs
+++ b/Filtration.ObjectModel/BlockItemTypes/FontSizeBlockItem.cs
@@ -16,7 +16,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
         public override string PrefixText => "SetFontSize";
         public override int MaximumAllowed => 1;
         public override string DisplayHeading => "Font Size";
-        public override int SortOrder => 20;
+        public override int SortOrder => 23;
         public override int Minimum => 11;
         public override int Maximum => 45;
     }
diff --git a/Filtration.ObjectModel/BlockItemTypes/GemLevelBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/GemLevelBlockItem.cs
new file mode 100644
index 0000000..da65452
--- /dev/null
+++ b/Filtration.ObjectModel/BlockItemTypes/GemLevelBlockItem.cs
@@ -0,0 +1,18 @@
+using System.Windows.Media;
+using Filtration.ObjectModel.BlockItemBaseTypes;
+
+namespace Filtration.ObjectModel.BlockItemTypes
+{
+    public class GemLevelBlockItem : NumericFilterPredicateBlockItem
+    {
+        public override string PrefixText => "GemLevel";
+        public override int MaximumAllowed => 2;
+        public override string DisplayHeading => "Gem Level";
+        public override string SummaryText => "Gem Level " + FilterPredicate;
+        public override Color SummaryBackgroundColor => Colors.DarkSlateGray;
+        public override Color SummaryTextColor => Colors.White;
+        public override int SortOrder => 14;
+        public override int Minimum => 0;
+        public override int Maximum => 40;
+    }
+}
diff --git a/Filtration.ObjectModel/BlockItemTypes/HasExplicitModBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/HasExplicitModBlockItem.cs
new file mode 100644
index 0000000..363c571
--- /dev/null
+++ b/Filtration.ObjectModel/BlockItemTypes/HasExplicitModBlockItem.cs
@@ -0,0 +1,38 @@
+using System.Linq;
+using System.Windows.Media;
+using Filtration.ObjectModel.BlockItemBaseTypes;
+
+namespace Filtration.ObjectModel.BlockItemTypes
+{
+    public class HasExplicitModBlockItem : StringListBlockItem
+    {
+        public override string PrefixText => "HasExplicitMod";
+        public override int MaximumAllowed => 1;
+        public override string DisplayHeading => "Has Explicit Mod";
+
+        public override string SummaryText
+        {
+            get
+            {
+                if (Items.Count > 0 && Items.Count < 4)
+                {
+                    return "Item Explicit Mods: " +
+                           Items.Aggregate(string.Empty, (current, i) => current + i + ", ").TrimEnd(' ').TrimEnd(',');
+                }
+                if (Items.Count >= 4)
+                {
+                    var remaining = Items.Count - 3;
+                    return "Item Explicit Mods: " + Items.Take(3)
+                        .Aggregate(string.Empty, (current, i) => current + i + ", ")
+                        .TrimEnd(' ')
+                        .TrimEnd(',') + " (+" + remaining + " more)";
+                }
+                return "Item Explicit Mods: (none)";
+            }
+        }
+
+        public override Color SummaryBackgroundColor => Colors.MidnightBlue;
+        public override Color SummaryTextColor => Colors.White;
+        public override int SortOrder => 19;
+    }
+}
diff --git a/Filtration.ObjectModel/BlockItemTypes/PositionalSoundBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/PositionalSoundBlockItem.cs
index 076b845..bccabb5 100644
--- a/Filtration.ObjectModel/BlockItemTypes/PositionalSoundBlockItem.cs
+++ b/Filtration.ObjectModel/BlockItemTypes/PositionalSoundBlockItem.cs
@@ -17,6 +17,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
         public override string PrefixText => "PlayAlertSoundPositional";
         public override int MaximumAllowed => 1;
         public override string DisplayHeading => "Play Positional Alert Sound";
-        public override int SortOrder => 22;
+        public override int SortOrder => 25;
     }
 }
diff --git a/Filtration.ObjectModel/BlockItemTypes/RarityBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/RarityBlockItem.cs
index 24ac5ef..eb9203a 100644
--- a/Filtration.ObjectModel/BlockItemTypes/RarityBlockItem.cs
+++ b/Filtration.ObjectModel/BlockItemTypes/RarityBlockItem.cs
@@ -30,7 +30,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
                                               ((ItemRarity) FilterPredicate.PredicateOperand).GetAttributeDescription();
         public override Color SummaryBackgroundColor => Colors.LightCoral;
         public override Color SummaryTextColor => Colors.White;
-        public override int SortOrder => 14;
+        public override int SortOrder => 16;
         public override int Minimum => 0;
         public override int Maximum => (int)ItemRarity.Unique;
     }
diff --git a/Filtration.ObjectModel/BlockItemTypes/SoundBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/SoundBlockItem.cs
index 1d8233a..bd1776f 100644
--- a/Filtration.ObjectModel/BlockItemTypes/SoundBlockItem.cs
+++ b/Filtration.ObjectModel/BlockItemTypes/SoundBlockItem.cs
@@ -17,6 +17,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
         public override string PrefixText => "PlayAlertSound";
         public override int MaximumAllowed => 1;
         public override string DisplayHeading => "Play Alert Sound";
-        public override int SortOrder => 21;
+        public override int SortOrder => 24;
     }
 }
diff --git a/Filtration.ObjectModel/BlockItemTypes/StackSizeBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/StackSizeBlockItem.cs
new file mode 100644
index 0000000..4ea5ec0
--- /dev/null
+++ b/Filtration.ObjectModel/BlockItemTypes/StackSizeBlockItem.cs
@@ -0,0 +1,18 @@
+using System.Windows.Media;
+using Filtration.ObjectModel.BlockItemBaseTypes;
+
+namespace Filtration.ObjectModel.BlockItemTypes
+{
+    public class StackSizeBlockItem : NumericFilterPredicateBlockItem
+    {
+        public override string PrefixText => "StackSize";
+        public override int MaximumAllowed => 2;
+        public override string DisplayHeading => "Stack Size";
+        public override string SummaryText => "Stack Size " + FilterPredicate;
+        public override Color SummaryBackgroundColor => Colors.DarkSlateGray;
+        public override Color SummaryTextColor => Colors.White;
+        public override int SortOrder => 15;
+        public override int Minimum => 0;
+        public override int Maximum => 1000;
+    }
+}
diff --git a/Filtration.ObjectModel/BlockItemTypes/TextColorBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/TextColorBlockItem.cs
index 81f36a6..2b7cc5d 100644
--- a/Filtration.ObjectModel/BlockItemTypes/TextColorBlockItem.cs
+++ b/Filtration.ObjectModel/BlockItemTypes/TextColorBlockItem.cs
@@ -16,6 +16,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
         public override string PrefixText => "SetTextColor";
         public override int MaximumAllowed => 1;
         public override string DisplayHeading => "Text Color";
-        public override int SortOrder => 17;
+        public override int SortOrder => 20;
     }
 }
diff --git a/Filtration.ObjectModel/Filtration.ObjectModel.csproj b/Filtration.ObjectModel/Filtration.ObjectModel.csproj
index 0c3638b..81baa3b 100644
--- a/Filtration.ObjectModel/Filtration.ObjectModel.csproj
+++ b/Filtration.ObjectModel/Filtration.ObjectModel.csproj
@@ -61,6 +61,8 @@
     <Compile Include="BlockItemTypes\BaseTypeBlockItem.cs" />
     <Compile Include="BlockItemTypes\BorderColorBlockItem.cs" />
     <Compile Include="BlockItemTypes\ClassBlockItem.cs" />
+    <Compile Include="BlockItemTypes\GemLevelBlockItem.cs" />
+    <Compile Include="BlockItemTypes\HasExplicitModBlockItem.cs" />
     <Compile Include="BlockItemTypes\ShapedMapBlockItem.cs" />
     <Compile Include="BlockItemTypes\ShaperItemBlockItem.cs" />
     <Compile Include="BlockItemTypes\ElderItemBlockItem.cs" />
@@ -77,9 +79,10 @@
     <Compile Include="BlockItemTypes\SocketsBlockItem.cs" />
     <Compile Include="BlockItemTypes\PositionalSoundBlockItem.cs" />
     <Compile Include="BlockItemTypes\SoundBlockItem.cs" />
+    <Compile Include="BlockItemTypes\StackSizeBlockItem.cs" />
     <Compile Include="BlockItemTypes\TextColorBlockItem.cs" />
     <Compile Include="BlockItemTypes\WidthBlockItem.cs" />
-		<Compile Include="Commands\CommandManager.cs" />
+    <Compile Include="Commands\CommandManager.cs" />
     <Compile Include="Commands\ICommand.cs" />
     <Compile Include="Commands\ItemFilterScript\PasteBlockCommand.cs" />
     <Compile Include="Commands\ItemFilterScript\MoveBlockToBottomCommand.cs" />
@@ -100,7 +103,7 @@
     <Compile Include="Enums\ThemeComponentType.cs" />
     <Compile Include="Extensions\EnumHelper.cs" />
     <Compile Include="Extensions\ItemRarityExtensions.cs" />
-		<Compile Include="Factories\IItemFilterScriptFactory.cs" />
+    <Compile Include="Factories\IItemFilterScriptFactory.cs" />
     <Compile Include="FilteredItem.cs" />
     <Compile Include="IAudioVisualBlockItem.cs" />
     <Compile Include="IItemFilterBlockItem.cs" />
@@ -108,7 +111,7 @@
     <Compile Include="ItemFilterBlock.cs" />
     <Compile Include="ItemFilterBlockGroup.cs" />
     <Compile Include="ItemFilterScript.cs" />
-		<Compile Include="ItemFilterScriptSettings.cs" />
+    <Compile Include="ItemFilterScriptSettings.cs" />
     <Compile Include="ItemSet.cs" />
     <Compile Include="NumericFilterPredicate.cs" />
     <Compile Include="PathOfExileNamedColors.cs" />
diff --git a/Filtration.Parser/Services/ItemFilterBlockTranslator.cs b/Filtration.Parser/Services/ItemFilterBlockTranslator.cs
index 1168731..5e30f47 100644
--- a/Filtration.Parser/Services/ItemFilterBlockTranslator.cs
+++ b/Filtration.Parser/Services/ItemFilterBlockTranslator.cs
@@ -266,6 +266,21 @@ namespace Filtration.Parser.Services
                         }
                         break;
                     }
+                    case "GemLevel":
+                    {
+                        AddNumericFilterPredicateItemToBlockItems<GemLevelBlockItem>(block, trimmedLine);
+                        break;
+                    }
+                    case "StackSize":
+                    {
+                        AddNumericFilterPredicateItemToBlockItems<StackSizeBlockItem>(block, trimmedLine);
+                        break;
+                    }
+                    case "HasExplicitMod":
+                    {
+                        AddStringListItemToBlockItems<HasExplicitModBlockItem>(block, trimmedLine);
+                        break;
+                    }
                 }
             }
 
diff --git a/Filtration.Tests/Filtration.Tests.csproj b/Filtration.Tests/Filtration.Tests.csproj
index 4d15320..d623069 100644
--- a/Filtration.Tests/Filtration.Tests.csproj
+++ b/Filtration.Tests/Filtration.Tests.csproj
@@ -107,6 +107,9 @@
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>
     </EmbeddedResource>
   </ItemGroup>
+  <ItemGroup>
+    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/Filtration.ThemeEditor.Tests/Filtration.ThemeEditor.Tests.csproj b/Filtration.ThemeEditor.Tests/Filtration.ThemeEditor.Tests.csproj
index 88b49fc..3cf29d5 100644
--- a/Filtration.ThemeEditor.Tests/Filtration.ThemeEditor.Tests.csproj
+++ b/Filtration.ThemeEditor.Tests/Filtration.ThemeEditor.Tests.csproj
@@ -73,6 +73,9 @@
   <ItemGroup>
     <None Include="packages.config" />
   </ItemGroup>
+  <ItemGroup>
+    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/Filtration/UserControls/BlockItemControl.xaml b/Filtration/UserControls/BlockItemControl.xaml
index c9dfba3..a9f2962 100644
--- a/Filtration/UserControls/BlockItemControl.xaml
+++ b/Filtration/UserControls/BlockItemControl.xaml
@@ -75,7 +75,12 @@
                     <DataTemplate DataType="{x:Type blockItemTypes:BaseTypeBlockItem}">
                         <userControls:EditableListBoxControl Margin="5,5,5,5" ItemsSource="{Binding Items}" AutoCompleteItemsSource="{Binding ElementName=TopLevelGrid, Path=DataContext.AutoCompleteItemBaseTypes}" />
                     </DataTemplate>
-                    
+
+                    <!-- Explicit Mods Template -->
+                    <DataTemplate DataType="{x:Type blockItemTypes:HasExplicitModBlockItem}">
+                        <userControls:EditableListBoxControl Margin="5,5,5,5" ItemsSource="{Binding Items}" />
+                    </DataTemplate>
+
                     <!-- Socket Groups Template -->
                     <DataTemplate DataType="{x:Type blockItemTypes:SocketGroupBlockItem}">
                         <userControls:EditableListBoxControl Margin="5,5,5,5" ItemsSource="{Binding Items}" />
diff --git a/Filtration/ViewModels/ItemFilterBlockViewModel.cs b/Filtration/ViewModels/ItemFilterBlockViewModel.cs
index 5cf0c0c..396190d 100644
--- a/Filtration/ViewModels/ItemFilterBlockViewModel.cs
+++ b/Filtration/ViewModels/ItemFilterBlockViewModel.cs
@@ -159,7 +159,10 @@ namespace Filtration.ViewModels
             typeof (CorruptedBlockItem),
             typeof (ElderItemBlockItem),
             typeof (ShaperItemBlockItem),
-            typeof (ShapedMapBlockItem)
+            typeof (ShapedMapBlockItem),
+            typeof (GemLevelBlockItem),
+            typeof (StackSizeBlockItem),
+            typeof (HasExplicitModBlockItem)
         };
 
         public List<Type> AudioVisualBlockItemTypesAvailable => new List<Type>