add support for component.io