move loop ending condition outside of if
ignore delete exceptions on dispose
cleanup
organizing chain state worker