consumer needs to execute the cleanup itself on initialization