added complicated container traits