linearize cluster updates and refactor Deallocators

probably unnecessary optimization, but if the logger level is < debug a static final noop listener could be used here instead of creating a new instance each time.