process initializer even in single-threaded case, and refactor slightly