refactor container properties to share more code