1. Moved the ContainerInterface into it's own directory.
2. Implemented a Container->make function.
3. Some changes to improve decoupling.