Refactor IOFactory and AbstractContainer to allow more dynamic inclusion.