static public List<GenericInputDevice> populateDeviceList()
	{
		List<GenericInputDevice> inputDeviceList = new ArrayList<GenericInputDevice>();
		
		File inputDeviceDir = new File("InputDevices");
		// if the directory does not exist, create it
		if (!inputDeviceDir.exists())
		{
			System.out.println( "creating Databases Directory" );
			boolean created = inputDeviceDir.mkdir();  
			if( created ) //populate directory with new local database files
			{    
				System.out.println("InputDevices Directory was created");
			}
		}
		else //if directory does exist, then read in all files and create database for each
		{
			System.out.println( "Loading InputDevices:" );
			File[] allFiles = inputDeviceDir.listFiles();
			if ( allFiles.length == 0 )
			{
				System.out.println("No InputDevice files found");
			}
			else
			{
				File pepidFile;
				for( int i = 0; i < allFiles.length; i++ )
				{
					if ( allFiles[i].getName().endsWith(".pepid") )
					{
						pepidFile = allFiles[i];
						GenericInputDevice pepInputDevice;
						pepInputDevice = readInputDeviceFile( pepidFile );
						if ( pepInputDevice != null )
						{
							inputDeviceList.add(pepInputDevice);
							//begin the timer thread for this inputDevice
							pepInputDevice.startTimer();
						}
						
					}
				}
			}
		}
		return inputDeviceList;
	}