diff --git a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/FXMLConstructor.java b/Core/src/org/sleuthkit/autopsy/coreutils/FXMLConstructor.java
similarity index 96%
rename from ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/FXMLConstructor.java
rename to Core/src/org/sleuthkit/autopsy/coreutils/FXMLConstructor.java
index 1d4cbc39d321c7c2a6bc90f0863dd20695b8febd..f398d7c7aafed2847a35261802f4e9fd1aeee9fd 100644
--- a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/FXMLConstructor.java
+++ b/Core/src/org/sleuthkit/autopsy/coreutils/FXMLConstructor.java
@@ -16,7 +16,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.sleuthkit.autopsy.imageanalyzer;
+package org.sleuthkit.autopsy.coreutils;
 
 import java.io.IOException;
 import java.net.URL;
@@ -35,6 +35,9 @@
  */
 public class FXMLConstructor {
 
+    private FXMLConstructor() {
+    }
+    
     private static final CachingClassLoader CACHING_CLASS_LOADER = new CachingClassLoader((FXMLLoader.getDefaultClassLoader()));
 
     static public void construct(Node n, String fxmlFileName) {
@@ -65,7 +68,7 @@ static public void construct(Node n, String fxmlFileName) {
      */
     static public class CachingClassLoader extends ClassLoader {
 
-        private final Map<String, Class> classes = new HashMap<String, Class>();
+        private final Map<String, Class<?>> classes = new HashMap<>();
 
         private final ClassLoader parent;
 
diff --git a/Core/src/org/sleuthkit/autopsy/timeline/FXMLConstructor.java b/Core/src/org/sleuthkit/autopsy/timeline/FXMLConstructor.java
deleted file mode 100644
index 685d50d3d56b8231946f85f3a4fbb7feb226c97f..0000000000000000000000000000000000000000
--- a/Core/src/org/sleuthkit/autopsy/timeline/FXMLConstructor.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Autopsy Forensic Browser
- *
- * Copyright 2013 Basis Technology Corp.
- * Contact: carrier <at> sleuthkit <dot> org
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.sleuthkit.autopsy.timeline;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Map;
-import javafx.fxml.FXMLLoader;
-import javafx.scene.Node;
-import org.openide.util.Exceptions;
-
-/**
- * This class support both programmer productivity by abstracting frequently
- * used code to load FXML-defined GUI components, and code performance by
- * implementing a caching FXMLLoader as described at
- * http://stackoverflow.com/questions/11734885/javafx2-very-poor-performance-when-adding-custom-made-fxmlpanels-to-gridpane.
- *
- * TODO: this code is duplicated in the Image Analyze module, we should move it
- * into a centralized places like a JavaFX utils class/package/module in
- * Autopsy- jm
- */
-public class FXMLConstructor {
-
-    private static final CachingClassLoader CACHING_CLASS_LOADER = new CachingClassLoader((FXMLLoader.getDefaultClassLoader()));
-
-    static public void construct(Node n, String fxmlFileName) {
-        FXMLLoader fxmlLoader = new FXMLLoader(n.getClass().getResource(fxmlFileName));
-        fxmlLoader.setRoot(n);
-        fxmlLoader.setController(n);
-        fxmlLoader.setClassLoader(CACHING_CLASS_LOADER);
-
-        try {
-            fxmlLoader.load();
-        } catch (Exception exception) {
-            try {
-                fxmlLoader.setClassLoader(FXMLLoader.getDefaultClassLoader());
-                fxmlLoader.load();
-            } catch (Exception ex) {
-                Exceptions.printStackTrace(ex);
-            }
-        }
-    }
-
-    /**
-     * The default FXMLLoader does not cache information about previously loaded
-     * FXML files. See
-     * http://stackoverflow.com/questions/11734885/javafx2-very-poor-performance-when-adding-custom-made-fxmlpanels-to-gridpane.
-     * for more details. As a partial workaround, we cache information on
-     * previously loaded classes. This does not solve all performance issues,
-     * but is a big improvement.
-     */
-    static public class CachingClassLoader extends ClassLoader {
-
-        private final Map<String, Class<?>> classes = new HashMap<>();
-
-        private final ClassLoader parent;
-
-        public CachingClassLoader(ClassLoader parent) {
-            this.parent = parent;
-        }
-
-        @Override
-        public Class<?> loadClass(String name) throws ClassNotFoundException {
-            Class<?> c = findClass(name);
-            if (c == null) {
-                throw new ClassNotFoundException(name);
-            }
-            return c;
-        }
-
-        @Override
-        protected Class<?> findClass(String className) throws ClassNotFoundException {
-// System.out.print("try to load " + className); 
-            if (classes.containsKey(className)) {
-                Class<?> result = classes.get(className);
-                return result;
-            } else {
-                try {
-                    Class<?> result = parent.loadClass(className);
-// System.out.println(" -> success!"); 
-                    classes.put(className, result);
-                    return result;
-                } catch (ClassNotFoundException ignore) {
-// System.out.println(); 
-                    classes.put(className, null);
-                    return null;
-                }
-            }
-        }
-
-        // ========= delegating methods ============= 
-        @Override
-        public URL getResource(String name) {
-            return parent.getResource(name);
-        }
-
-        @Override
-        public Enumeration<URL> getResources(String name) throws IOException {
-            return parent.getResources(name);
-        }
-
-        @Override
-        public String toString() {
-            return parent.toString();
-        }
-
-        @Override
-        public void setDefaultAssertionStatus(boolean enabled) {
-            parent.setDefaultAssertionStatus(enabled);
-        }
-
-        @Override
-        public void setPackageAssertionStatus(String packageName, boolean enabled) {
-            parent.setPackageAssertionStatus(packageName, enabled);
-        }
-
-        @Override
-        public void setClassAssertionStatus(String className, boolean enabled) {
-            parent.setClassAssertionStatus(className, enabled);
-        }
-
-        @Override
-        public void clearAssertionStatus() {
-            parent.clearAssertionStatus();
-        }
-    }
-}
diff --git a/Core/src/org/sleuthkit/autopsy/timeline/actions/SwingMenuItemAdapter.java b/Core/src/org/sleuthkit/autopsy/timeline/actions/SwingMenuItemAdapter.java
deleted file mode 100644
index 85f7e5552d3118e2c42225372c74c097690d3271..0000000000000000000000000000000000000000
--- a/Core/src/org/sleuthkit/autopsy/timeline/actions/SwingMenuItemAdapter.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Autopsy Forensic Browser
- *
- * Copyright 2013-14 Basis Technology Corp.
- * Contact: carrier <at> sleuthkit <dot> org
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.sleuthkit.autopsy.timeline.actions;
-
-import javafx.event.ActionEvent;
-import javafx.scene.control.Menu;
-import javafx.scene.control.MenuItem;
-import javax.swing.JMenu;
-import javax.swing.JMenuItem;
-import javax.swing.JPopupMenu;
-import javax.swing.MenuElement;
-import javax.swing.SwingUtilities;
-
-public class SwingMenuItemAdapter extends MenuItem {
-
-    JMenuItem jMenuItem;
-
-    SwingMenuItemAdapter(final JMenuItem jMenuItem) {
-        super(jMenuItem.getText());
-        this.jMenuItem = jMenuItem;
-        setOnAction((ActionEvent t) -> {
-            SwingUtilities.invokeLater(() -> {
-                jMenuItem.doClick();
-            });
-
-        });
-    }
-
-    public static MenuItem create(MenuElement jmenuItem) {
-        if (jmenuItem instanceof JMenu) {
-            return new SwingMenuAdapter((JMenu) jmenuItem);
-        } else if (jmenuItem instanceof JPopupMenu) {
-            return new SwingMenuAdapter((JPopupMenu) jmenuItem);
-        } else {
-            return new SwingMenuItemAdapter((JMenuItem) jmenuItem);
-        }
-
-    }
-}
-
-class SwingMenuAdapter extends Menu {
-
-    private final MenuElement jMenu;
-
-    SwingMenuAdapter(final JMenu jMenu) {
-        super(jMenu.getText());
-        this.jMenu = jMenu;
-        buildChildren(jMenu);
-
-    }
-
-    SwingMenuAdapter(JPopupMenu jPopupMenu) {
-        super(jPopupMenu.getLabel());
-        this.jMenu = jPopupMenu;
-
-        buildChildren(jMenu);
-    }
-
-    private void buildChildren(MenuElement jMenu) {
-
-        for (MenuElement menuE : jMenu.getSubElements()) {
-            if (menuE instanceof JMenu) {
-                getItems().add(SwingMenuItemAdapter.create((JMenu) menuE));
-            } else if (menuE instanceof JMenuItem) {
-                getItems().add(SwingMenuItemAdapter.create((JMenuItem) menuE));
-            } else if (menuE instanceof JPopupMenu) {
-                buildChildren(menuE);
-            } else {
-
-                System.out.println(menuE.toString());
-//                throw new UnsupportedOperationException();
-            }
-        }
-    }
-}
diff --git a/Core/src/org/sleuthkit/autopsy/timeline/ui/StatusBar.java b/Core/src/org/sleuthkit/autopsy/timeline/ui/StatusBar.java
index 0a80d3146dc91ee7e15f010fd31fadc067815084..b292d13c8bc0aecbb20238cbd9db89910483a2b8 100644
--- a/Core/src/org/sleuthkit/autopsy/timeline/ui/StatusBar.java
+++ b/Core/src/org/sleuthkit/autopsy/timeline/ui/StatusBar.java
@@ -25,7 +25,7 @@
 import javafx.scene.layout.HBox;
 import javafx.scene.layout.Priority;
 import javafx.scene.layout.Region;
-import org.sleuthkit.autopsy.timeline.FXMLConstructor;
+import org.sleuthkit.autopsy.coreutils.FXMLConstructor;
 import org.sleuthkit.autopsy.timeline.TimeLineController;
 import org.sleuthkit.autopsy.timeline.TimeLineUI;
 
diff --git a/Core/src/org/sleuthkit/autopsy/timeline/ui/TimeZonePanel.java b/Core/src/org/sleuthkit/autopsy/timeline/ui/TimeZonePanel.java
index 6882781b64d57acc0a728bd7cbd87cc7b1b0e3f9..87303ea9ee148d29bb8e7ef41d68421a44e914cd 100644
--- a/Core/src/org/sleuthkit/autopsy/timeline/ui/TimeZonePanel.java
+++ b/Core/src/org/sleuthkit/autopsy/timeline/ui/TimeZonePanel.java
@@ -27,7 +27,7 @@
 import javafx.scene.control.TitledPane;
 import javafx.scene.control.Toggle;
 import javafx.scene.control.ToggleGroup;
-import org.sleuthkit.autopsy.timeline.FXMLConstructor;
+import org.sleuthkit.autopsy.coreutils.FXMLConstructor;
 import org.sleuthkit.autopsy.timeline.TimeLineController;
 
 /**
diff --git a/Core/src/org/sleuthkit/autopsy/timeline/ui/VisualizationPanel.java b/Core/src/org/sleuthkit/autopsy/timeline/ui/VisualizationPanel.java
index 2500fffdb17c5a3bbf53bbdc7ef36f58d7dc2270..d761cb6bbf7ead470cea35029d9060a87850f25d 100644
--- a/Core/src/org/sleuthkit/autopsy/timeline/ui/VisualizationPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/timeline/ui/VisualizationPanel.java
@@ -67,9 +67,9 @@
 import org.joda.time.DateTime;
 import org.joda.time.DateTimeZone;
 import org.joda.time.Interval;
-import org.sleuthkit.autopsy.coreutils.Logger;
-import org.sleuthkit.autopsy.timeline.FXMLConstructor;
+import org.sleuthkit.autopsy.coreutils.FXMLConstructor;
 import org.sleuthkit.autopsy.coreutils.LoggedTask;
+import org.sleuthkit.autopsy.coreutils.Logger;
 import org.sleuthkit.autopsy.timeline.TimeLineController;
 import org.sleuthkit.autopsy.timeline.TimeLineView;
 import org.sleuthkit.autopsy.timeline.VisualizationMode;
diff --git a/Core/src/org/sleuthkit/autopsy/timeline/ui/countsview/CountsViewPane.java b/Core/src/org/sleuthkit/autopsy/timeline/ui/countsview/CountsViewPane.java
index 6791def14e534f411fb9575589ed36694fa35834..1bf47b48509fb68728db77594b73390bc3ddd72b 100644
--- a/Core/src/org/sleuthkit/autopsy/timeline/ui/countsview/CountsViewPane.java
+++ b/Core/src/org/sleuthkit/autopsy/timeline/ui/countsview/CountsViewPane.java
@@ -60,8 +60,10 @@
 import org.joda.time.DateTime;
 import org.joda.time.Interval;
 import org.joda.time.Seconds;
-import org.sleuthkit.autopsy.timeline.FXMLConstructor;
+import org.sleuthkit.autopsy.coreutils.ColorUtilities;
+import org.sleuthkit.autopsy.coreutils.FXMLConstructor;
 import org.sleuthkit.autopsy.coreutils.LoggedTask;
+import org.sleuthkit.autopsy.coreutils.Logger;
 import org.sleuthkit.autopsy.timeline.TimeLineController;
 import org.sleuthkit.autopsy.timeline.TimeLineView;
 import org.sleuthkit.autopsy.timeline.actions.Back;
@@ -70,9 +72,7 @@
 import org.sleuthkit.autopsy.timeline.events.type.EventType;
 import org.sleuthkit.autopsy.timeline.events.type.RootEventType;
 import org.sleuthkit.autopsy.timeline.ui.AbstractVisualization;
-import org.sleuthkit.autopsy.coreutils.ColorUtilities;
 import org.sleuthkit.autopsy.timeline.utils.RangeDivisionInfo;
-import org.sleuthkit.autopsy.coreutils.Logger;
 
 /**
  * FXML Controller class for a {@link StackedBarChart<String,Number>} based
diff --git a/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/DetailViewPane.java b/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/DetailViewPane.java
index c012c86e40683e3e0b04682a46ae722e3417350d..15f446684df4c1c83e789c5925930826881ff544 100644
--- a/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/DetailViewPane.java
+++ b/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/DetailViewPane.java
@@ -60,8 +60,9 @@
 import javafx.scene.layout.Region;
 import javafx.scene.layout.VBox;
 import org.joda.time.DateTime;
-import org.sleuthkit.autopsy.timeline.FXMLConstructor;
+import org.sleuthkit.autopsy.coreutils.FXMLConstructor;
 import org.sleuthkit.autopsy.coreutils.LoggedTask;
+import org.sleuthkit.autopsy.coreutils.Logger;
 import org.sleuthkit.autopsy.timeline.TimeLineController;
 import org.sleuthkit.autopsy.timeline.events.AggregateEvent;
 import org.sleuthkit.autopsy.timeline.events.FilteredEventsModel;
@@ -70,7 +71,6 @@
 import org.sleuthkit.autopsy.timeline.ui.countsview.CountsViewPane;
 import org.sleuthkit.autopsy.timeline.ui.detailview.tree.NavTreeNode;
 import org.sleuthkit.autopsy.timeline.utils.RangeDivisionInfo;
-import org.sleuthkit.autopsy.coreutils.Logger;
 
 /**
  * FXML Controller class for a {@link EventDetailChart} based implementation of
diff --git a/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/tree/NavPanel.java b/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/tree/NavPanel.java
index dd368a5257318bba27804eb3adaf4d292d141f91..d64d23b218a5e5aaef9995dad3fcf42ebf18c121 100644
--- a/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/tree/NavPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/tree/NavPanel.java
@@ -36,7 +36,7 @@
 import javafx.scene.layout.BorderPane;
 import javafx.scene.layout.StackPane;
 import javafx.scene.shape.Rectangle;
-import org.sleuthkit.autopsy.timeline.FXMLConstructor;
+import org.sleuthkit.autopsy.coreutils.FXMLConstructor;
 import org.sleuthkit.autopsy.timeline.TimeLineController;
 import org.sleuthkit.autopsy.timeline.TimeLineView;
 import org.sleuthkit.autopsy.timeline.events.AggregateEvent;
diff --git a/Core/src/org/sleuthkit/autopsy/timeline/ui/filtering/FilterSetPanel.java b/Core/src/org/sleuthkit/autopsy/timeline/ui/filtering/FilterSetPanel.java
index 89f379f80f53969716b9b0bfe7fb7e36e825856e..38d67104ace4435f1ec30de154d86756b2ec68b1 100644
--- a/Core/src/org/sleuthkit/autopsy/timeline/ui/filtering/FilterSetPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/timeline/ui/filtering/FilterSetPanel.java
@@ -32,7 +32,7 @@
 import javafx.scene.control.TreeTableView;
 import javafx.scene.layout.BorderPane;
 import org.controlsfx.control.action.AbstractAction;
-import org.sleuthkit.autopsy.timeline.FXMLConstructor;
+import org.sleuthkit.autopsy.coreutils.FXMLConstructor;
 import org.sleuthkit.autopsy.timeline.TimeLineController;
 import org.sleuthkit.autopsy.timeline.TimeLineView;
 import org.sleuthkit.autopsy.timeline.actions.DefaultFilters;
diff --git a/Core/src/org/sleuthkit/autopsy/timeline/zooming/ZoomSettingsPane.java b/Core/src/org/sleuthkit/autopsy/timeline/zooming/ZoomSettingsPane.java
index f07e113461ce78e50d4544d251d98a3c08a1cd63..958c1c139c40a58ed42f1dbe394808d76bc9b261 100644
--- a/Core/src/org/sleuthkit/autopsy/timeline/zooming/ZoomSettingsPane.java
+++ b/Core/src/org/sleuthkit/autopsy/timeline/zooming/ZoomSettingsPane.java
@@ -30,7 +30,7 @@
 import javafx.scene.control.TitledPane;
 import javafx.scene.control.Tooltip;
 import javafx.util.StringConverter;
-import org.sleuthkit.autopsy.timeline.FXMLConstructor;
+import org.sleuthkit.autopsy.coreutils.FXMLConstructor;
 import org.sleuthkit.autopsy.timeline.TimeLineController;
 import org.sleuthkit.autopsy.timeline.TimeLineView;
 import org.sleuthkit.autopsy.timeline.VisualizationMode;
diff --git a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/filtering/FilterPane.java b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/filtering/FilterPane.java
index d2294c700d08827e6093b088beadad22a00bf895..b964c8be2b80fc24a4786194d255c306beb56d02 100644
--- a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/filtering/FilterPane.java
+++ b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/filtering/FilterPane.java
@@ -21,7 +21,7 @@
 import org.sleuthkit.autopsy.imageanalyzer.filtering.filters.FilterRow;
 import org.sleuthkit.autopsy.imageanalyzer.filtering.filters.AtomicFilter;
 import org.sleuthkit.autopsy.imageanalyzer.filtering.filters.UnionFilter;
-import org.sleuthkit.autopsy.imageanalyzer.FXMLConstructor;
+import org.sleuthkit.autopsy.coreutils.FXMLConstructor;
 import java.net.URL;
 import java.util.Map;
 import java.util.ResourceBundle;
diff --git a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/filtering/FiltersPanel.java b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/filtering/FiltersPanel.java
index 855c50b6f1807b7edbf0755a06af2e2718754d2f..2a120ee03226cbac4a0f1d9e130b3d553a3cead2 100644
--- a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/filtering/FiltersPanel.java
+++ b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/filtering/FiltersPanel.java
@@ -40,7 +40,7 @@
 import javax.swing.SortOrder;
 import org.sleuthkit.autopsy.coreutils.LoggedTask;
 import org.sleuthkit.autopsy.coreutils.Logger;
-import org.sleuthkit.autopsy.imageanalyzer.FXMLConstructor;
+import org.sleuthkit.autopsy.coreutils.FXMLConstructor;
 import org.sleuthkit.autopsy.imageanalyzer.FileUpdateEvent;
 import org.sleuthkit.autopsy.imageanalyzer.FileUpdateListener;
 import org.sleuthkit.autopsy.imageanalyzer.ImageAnalyzerController;
diff --git a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/filtering/filters/AtomicFilter.java b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/filtering/filters/AtomicFilter.java
index 77c545e8952fcdfeaf9e21c6cfd5c8f07cf05bba..953391a3a852cd0258449d709059743e9baa0452 100644
--- a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/filtering/filters/AtomicFilter.java
+++ b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/filtering/filters/AtomicFilter.java
@@ -4,7 +4,7 @@
  */
 package org.sleuthkit.autopsy.imageanalyzer.filtering.filters;
 
-import org.sleuthkit.autopsy.imageanalyzer.FXMLConstructor;
+import org.sleuthkit.autopsy.coreutils.FXMLConstructor;
 import org.sleuthkit.autopsy.imageanalyzer.datamodel.DrawableAttribute;
 import org.sleuthkit.autopsy.imageanalyzer.datamodel.DrawableFile;
 import java.net.URL;
diff --git a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/filtering/filters/NameFilter.java b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/filtering/filters/NameFilter.java
index 08b0f4305efe05d485c15517e7614c6ea375429b..540b60fcd004a7218804fd10bac949fe86013980 100644
--- a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/filtering/filters/NameFilter.java
+++ b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/filtering/filters/NameFilter.java
@@ -4,7 +4,7 @@
  */
 package org.sleuthkit.autopsy.imageanalyzer.filtering.filters;
 
-import org.sleuthkit.autopsy.imageanalyzer.FXMLConstructor;
+import org.sleuthkit.autopsy.coreutils.FXMLConstructor;
 import org.sleuthkit.autopsy.imageanalyzer.datamodel.DrawableAttribute;
 import java.net.URL;
 import java.util.ResourceBundle;
diff --git a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/DrawableTile.java b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/DrawableTile.java
index f6d792cf9f5f01a5fe7120a56e10f777e3c15a90..8376eb065f0b0e63bbd70bea1256b526b4655e7f 100644
--- a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/DrawableTile.java
+++ b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/DrawableTile.java
@@ -29,7 +29,7 @@
 import javafx.scene.image.ImageView;
 import javafx.scene.paint.Color;
 import org.sleuthkit.autopsy.coreutils.Logger;
-import org.sleuthkit.autopsy.imageanalyzer.FXMLConstructor;
+import org.sleuthkit.autopsy.coreutils.FXMLConstructor;
 import org.sleuthkit.autopsy.imageanalyzer.TagUtils;
 import org.sleuthkit.autopsy.coreutils.ThreadConfined;
 import org.sleuthkit.autopsy.coreutils.ThreadConfined.ThreadType;
diff --git a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/GroupPane.java b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/GroupPane.java
index d67c7eac2a94abb558625e3e9683362b4bb217ea..14bac4bfaaa77d5228af41ee1494244209fc9f45 100644
--- a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/GroupPane.java
+++ b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/GroupPane.java
@@ -96,7 +96,7 @@
 import org.sleuthkit.autopsy.directorytree.ExtractAction;
 import org.sleuthkit.autopsy.imageanalyzer.ImageAnalyzerController;
 import org.sleuthkit.autopsy.imageanalyzer.ImageAnalyzerTopComponent;
-import org.sleuthkit.autopsy.imageanalyzer.FXMLConstructor;
+import org.sleuthkit.autopsy.coreutils.FXMLConstructor;
 import org.sleuthkit.autopsy.imageanalyzer.FileIDSelectionModel;
 import org.sleuthkit.autopsy.imageanalyzer.TagUtils;
 import org.sleuthkit.autopsy.coreutils.ThreadConfined;
diff --git a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/MediaControl.java b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/MediaControl.java
index a822acb00a2055b178f2c3462f623b8754648a75..b8f1dc97cc7f930a5eca0baf6f976d0427af27f0 100644
--- a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/MediaControl.java
+++ b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/MediaControl.java
@@ -18,7 +18,7 @@
  */
 package org.sleuthkit.autopsy.imageanalyzer.gui;
 
-import org.sleuthkit.autopsy.imageanalyzer.FXMLConstructor;
+import org.sleuthkit.autopsy.coreutils.FXMLConstructor;
 import java.net.URL;
 import java.util.ResourceBundle;
 import java.util.logging.Level;
diff --git a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/NoGroupsDialog.java b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/NoGroupsDialog.java
index 77bd00cc1f4ee940113203d9a7221a8b57ff1e5f..47c7a3171797f6e5442658c4738a37974c8d2976 100644
--- a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/NoGroupsDialog.java
+++ b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/NoGroupsDialog.java
@@ -19,7 +19,7 @@
  */
 package org.sleuthkit.autopsy.imageanalyzer.gui;
 
-import org.sleuthkit.autopsy.imageanalyzer.FXMLConstructor;
+import org.sleuthkit.autopsy.coreutils.FXMLConstructor;
 import java.net.URL;
 import java.util.ResourceBundle;
 import javafx.fxml.FXML;
diff --git a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/SlideShowView.java b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/SlideShowView.java
index dbd30e79c43ae8d4800652592361a243c5d6e29b..2a80d18ec103992823c4a5f5074847e8c3b5f46f 100644
--- a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/SlideShowView.java
+++ b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/SlideShowView.java
@@ -47,7 +47,7 @@
 import javafx.scene.layout.Region;
 import org.openide.util.Exceptions;
 import org.sleuthkit.autopsy.coreutils.Logger;
-import org.sleuthkit.autopsy.imageanalyzer.FXMLConstructor;
+import org.sleuthkit.autopsy.coreutils.FXMLConstructor;
 import org.sleuthkit.autopsy.imageanalyzer.FileIDSelectionModel;
 import org.sleuthkit.autopsy.imageanalyzer.TagUtils;
 import org.sleuthkit.autopsy.coreutils.ThreadConfined;
diff --git a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/SummaryTablePane.java b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/SummaryTablePane.java
index 32936a0da2fc111623b9bc8a7d593ebd3318d1f5..8beb5f1211f74debe292b02268d6888f9175b61e 100644
--- a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/SummaryTablePane.java
+++ b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/SummaryTablePane.java
@@ -36,7 +36,7 @@
 import org.openide.util.Exceptions;
 import org.sleuthkit.autopsy.casemodule.Case;
 import org.sleuthkit.autopsy.imageanalyzer.ImageAnalyzerController;
-import org.sleuthkit.autopsy.imageanalyzer.FXMLConstructor;
+import org.sleuthkit.autopsy.coreutils.FXMLConstructor;
 import org.sleuthkit.autopsy.imageanalyzer.datamodel.Category;
 import org.sleuthkit.datamodel.TskCoreException;
 
diff --git a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/Toolbar.java b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/Toolbar.java
index a6688d4d8f4dafb98547305e70e79e2dd76994a3..7a98548b0a499a4c37e3106aac71dc4b27d81a68 100644
--- a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/Toolbar.java
+++ b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/Toolbar.java
@@ -42,7 +42,7 @@
 import javafx.scene.layout.HBox;
 import javax.swing.SortOrder;
 import org.openide.util.Exceptions;
-import org.sleuthkit.autopsy.imageanalyzer.FXMLConstructor;
+import org.sleuthkit.autopsy.coreutils.FXMLConstructor;
 import org.sleuthkit.autopsy.imageanalyzer.FileIDSelectionModel;
 import org.sleuthkit.autopsy.imageanalyzer.IconCache;
 import org.sleuthkit.autopsy.imageanalyzer.ImageAnalyzerController;
diff --git a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/navpanel/NavPanel.java b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/navpanel/NavPanel.java
index 9bce73f5636138914ba79bd3ffccb709eb7f2f7e..f7b81912db26f05c8258e328d602f41f267a41cd 100644
--- a/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/navpanel/NavPanel.java
+++ b/ImageAnalyzer/src/org/sleuthkit/autopsy/imageanalyzer/gui/navpanel/NavPanel.java
@@ -44,7 +44,7 @@
 import org.apache.commons.lang3.StringUtils;
 import org.openide.util.Exceptions;
 import org.sleuthkit.autopsy.imageanalyzer.ImageAnalyzerController;
-import org.sleuthkit.autopsy.imageanalyzer.FXMLConstructor;
+import org.sleuthkit.autopsy.coreutils.FXMLConstructor;
 import org.sleuthkit.autopsy.imageanalyzer.datamodel.DrawableAttribute;
 import org.sleuthkit.autopsy.imageanalyzer.datamodel.DrawableAttribute.AttributeName;
 import static org.sleuthkit.autopsy.imageanalyzer.datamodel.DrawableAttribute.AttributeName.PATH;