used new Factory pattern for a few more containers