aggregated changes from refactoring