Added new base class to have less repeated methods. Now changes shell colours when background changed - doesn't work if files don't already exist i.e. if change settings after originally added files
Creates file metadata if doesn't exist