composite container refactoring