private void processFile(File file)
    {
        
        if (lookup.containsKey(file))
        {
            FileDetails info = lookup.get(file);
            if (info.hasExpired())
                deleteList.add(info);
            //else ignore
        }
        else
        {
            //apply rules
            //extension check
            //file size check
            if (file.isDirectory())
            {
                
            }
            else
            {
                //for multiple pops will need to refactor
                FileDetails fileDetails = new FileDetails(file, DateTime.now());
                
                //get category, and move to category
                int[] cats = analyser.getTopCategories(fileDetails);
                
                boolean filePreAdded = false;
                for (int i = 0; i < cats.length; i++)
                {
                    if (Settings.getInstance().getCategoryList()[(cats[i])].isFileInFolder(fileDetails))
                    {
                        filePreAdded = true;
                        continue;
                    }
                }
                
                //check to see if file is already present (uses file hashing)
                if (!filePreAdded)
                {
                    boolean isApproved = PopUp.getApproval(fileDetails,cats);

                    //Somewhere here, we need to show the gui
                    if (isApproved)
                        Settings.getInstance().getCategoryList()[fileDetails.getCategory()].addFile(fileDetails);
                    
                }//else file already present, do nothing
                
                
            }
        }
    }