Refactored component api.