diff --git a/Filtration/Translators/BlockGroupHierarchyBuilder.cs b/Filtration/Translators/BlockGroupHierarchyBuilder.cs
index 51487a7..1ece508 100644
--- a/Filtration/Translators/BlockGroupHierarchyBuilder.cs
+++ b/Filtration/Translators/BlockGroupHierarchyBuilder.cs
@@ -8,6 +8,7 @@ namespace Filtration.Translators
     internal interface IBlockGroupHierarchyBuilder
     {
         void Initialise(ItemFilterBlockGroup rootBlockGroup);
+        void Cleanup();
         ItemFilterBlockGroup IntegrateStringListIntoBlockGroupHierarchy(IEnumerable<string> groupStrings);
     }
 
@@ -20,6 +21,11 @@ namespace Filtration.Translators
             _rootBlockGroup = rootBlockGroup;
         }
 
+        public void Cleanup()
+        {
+            _rootBlockGroup = null;
+        }
+
         public ItemFilterBlockGroup IntegrateStringListIntoBlockGroupHierarchy(IEnumerable<string> groupStrings)
         {
             if (_rootBlockGroup == null)
diff --git a/Filtration/Translators/ItemFilterScriptTranslator.cs b/Filtration/Translators/ItemFilterScriptTranslator.cs
index 80bfe9b..bc0f61e 100644
--- a/Filtration/Translators/ItemFilterScriptTranslator.cs
+++ b/Filtration/Translators/ItemFilterScriptTranslator.cs
@@ -70,7 +70,8 @@ namespace Filtration.Translators
             }
 
             script.ThemeComponents = _themeComponentListBuilder.GetComponents();
-
+            _blockGroupHierarchyBuilder.Cleanup();
+            _themeComponentListBuilder.Cleanup();
             return script;
         }
 
diff --git a/Filtration/Translators/ThemeComponentListBuilder.cs b/Filtration/Translators/ThemeComponentListBuilder.cs
index 616b64e..79a46af 100644
--- a/Filtration/Translators/ThemeComponentListBuilder.cs
+++ b/Filtration/Translators/ThemeComponentListBuilder.cs
@@ -12,6 +12,7 @@ namespace Filtration.Translators
         void Initialise();
         ThemeComponent AddComponent(ThemeComponentType componentType, string componentName, Color componentColor);
         List<ThemeComponent> GetComponents();
+        void Cleanup();
     }
 
     internal class ThemeComponentListBuilder : IThemeComponentListBuilder
@@ -27,7 +28,12 @@ namespace Filtration.Translators
         {
             _themeComponents = new List<ThemeComponent>();
         }
-        
+
+        public void Cleanup()
+        {
+            _themeComponents = null;
+        }
+
         public ThemeComponent AddComponent(ThemeComponentType componentType, string componentName, Color componentColor)
         {
             if (ComponentExists(componentType, componentName))
diff --git a/Filtration/UserControls/ItemPreviewControl.xaml.cs b/Filtration/UserControls/ItemPreviewControl.xaml.cs
index 2a753d4..9b0ee7c 100644
--- a/Filtration/UserControls/ItemPreviewControl.xaml.cs
+++ b/Filtration/UserControls/ItemPreviewControl.xaml.cs
@@ -1,4 +1,5 @@
-using System.Windows;
+using System;
+using System.Windows;
 using System.Windows.Media;
 
 namespace Filtration.UserControls
@@ -10,6 +11,7 @@ namespace Filtration.UserControls
             InitializeComponent();
             // ReSharper disable once PossibleNullReferenceException
             (Content as FrameworkElement).DataContext = this;
+            
         }
 
         public static readonly DependencyProperty TextColorProperty = DependencyProperty.Register(
@@ -35,9 +37,9 @@ namespace Filtration.UserControls
 
         public static readonly DependencyProperty BlockFontSizeProperty = DependencyProperty.Register(
             "BlockFontSize",
-            typeof(int),
+            typeof(double),
             typeof(ItemPreviewControl),
-            new FrameworkPropertyMetadata()
+            new FrameworkPropertyMetadata((double)19)
         );
 
         public Color TextColor
@@ -58,9 +60,12 @@ namespace Filtration.UserControls
             set { SetValue(BorderColorProperty, value); }
         }
 
-        public int BlockFontSize
+        public double BlockFontSize
         {
-            get { return (int)GetValue(BlockFontSizeProperty); }
+            get
+            {
+                return (double)GetValue(BlockFontSizeProperty);
+            }
             set { SetValue(BlockFontSizeProperty, value); }
         }
     }
diff --git a/Filtration/ViewModels/AvalonDockWorkspaceViewModel.cs b/Filtration/ViewModels/AvalonDockWorkspaceViewModel.cs
index e629d4b..d6b0f0f 100644
--- a/Filtration/ViewModels/AvalonDockWorkspaceViewModel.cs
+++ b/Filtration/ViewModels/AvalonDockWorkspaceViewModel.cs
@@ -145,6 +145,10 @@ namespace Filtration.ViewModels
             }
 
             _openDocuments.Remove(document);
+            if (_activeDocument == document)
+            {
+                _activeDocument = null;
+            }
         }
 
         public void SwitchActiveDocument(IDocument document)
diff --git a/Filtration/ViewModels/ItemFilterBlockViewModel.cs b/Filtration/ViewModels/ItemFilterBlockViewModel.cs
index cf2d5a5..bd9d4da 100644
--- a/Filtration/ViewModels/ItemFilterBlockViewModel.cs
+++ b/Filtration/ViewModels/ItemFilterBlockViewModel.cs
@@ -275,10 +275,16 @@ namespace Filtration.ViewModels
             get { return Block.HasBlockItemOfType<FontSizeBlockItem>(); }
         }
 
-        public int DisplayFontSize
+        public double DisplayFontSize
         {
             // Dividing by 1.8 roughly scales in-game font sizes down to WPF sizes
-            get { return HasFontSize ? (int)(BlockItems.OfType<FontSizeBlockItem>().First().Value / 1.8) : 19; }
+            get
+            {
+                var fontSize = HasFontSize ? (BlockItems.OfType<FontSizeBlockItem>().First().Value / 1.8) : 19;
+                
+                return fontSize;
+
+            }
         }
 
         public bool HasSound
diff --git a/Filtration/ViewModels/MainWindowViewModel.cs b/Filtration/ViewModels/MainWindowViewModel.cs
index 8f5992e..b0984f0 100644
--- a/Filtration/ViewModels/MainWindowViewModel.cs
+++ b/Filtration/ViewModels/MainWindowViewModel.cs
@@ -98,8 +98,6 @@ namespace Filtration.ViewModels
                 {
                     case "ActiveDocumentChanged":
                     {
-                        _activeDocument = _avalonDockWorkspaceViewModel.ActiveDocument;
-                        
                         CopyScriptCommand.RaiseCanExecuteChanged();
                         SaveCommand.RaiseCanExecuteChanged();
                         SaveAsCommand.RaiseCanExecuteChanged();
@@ -178,7 +176,7 @@ namespace Filtration.ViewModels
             get
             {
                 {
-                    var isScript = _activeDocument is ItemFilterScriptViewModel;
+                    var isScript = AvalonDockWorkspaceViewModel.ActiveDocument is ItemFilterScriptViewModel;
                     return isScript;
                 }
             }
@@ -191,12 +189,12 @@ namespace Filtration.ViewModels
 
         public bool ActiveDocumentIsTheme
         {
-            get { { return _activeDocument is ThemeViewModel; } }
+            get { { return AvalonDockWorkspaceViewModel.ActiveDocument is ThemeViewModel; } }
         }
 
         private bool ActiveDocumentIsEditable()
         {
-            return _activeDocument is IEditableDocument;
+            return AvalonDockWorkspaceViewModel.ActiveDocument is IEditableDocument;
         }
 
         public bool ShowAdvancedStatus
diff --git a/Filtration/ViewModels/StartPageViewModel.cs b/Filtration/ViewModels/StartPageViewModel.cs
index 7fa2248..8318082 100644
--- a/Filtration/ViewModels/StartPageViewModel.cs
+++ b/Filtration/ViewModels/StartPageViewModel.cs
@@ -30,7 +30,8 @@ namespace Filtration.ViewModels
         {
             throw new System.NotImplementedException();
         }
-        
+
+
         private static void OnOpenScriptCommand()
         {
             Messenger.Default.Send(new NotificationMessage("OpenScript"));
diff --git a/Filtration/Views/AvalonDock/AvalonDockWorkspaceView.xaml b/Filtration/Views/AvalonDock/AvalonDockWorkspaceView.xaml
index 9b4a2ab..b53ee20 100644
--- a/Filtration/Views/AvalonDock/AvalonDockWorkspaceView.xaml
+++ b/Filtration/Views/AvalonDock/AvalonDockWorkspaceView.xaml
@@ -24,9 +24,9 @@
                              AllowMixedOrientation="True"
                              DocumentsSource="{Binding OpenDocuments}"
                              ActiveContent="{Binding ActiveDocument, Mode=TwoWay, Converter={StaticResource ActiveDocumentConverter}}" >
-            <xcad:DockingManager.Theme>
+            <!--<xcad:DockingManager.Theme>
                 <xcad:Vs2013LightTheme />
-            </xcad:DockingManager.Theme>
+            </xcad:DockingManager.Theme>-->
             <xcad:DockingManager.LayoutItemTemplateSelector>
                 <viewsAvalonDock:PanesTemplateSelector>
                     <viewsAvalonDock:PanesTemplateSelector.ItemFilterScriptTemplate>