mostly working now - engine, selector, persister, notifier