A generic container