added factory for API and core components