Component/ComponentInfo refactor