implement some practical container