component-compatible