arguments from **kwargs only
reuse operation instances if they exist. semantic changes
add methods for calling custom hooks
update process spawning, create thumbs if missing, etc
see previous commit