logic fixes and caching of scan/scroll response.  this now needs a hash algorithm to generate filenames that are unlikely to collide and won't make OSX throw 'File name too long'