small refinements to impl
new impl with background queue waiting/filesaving