component based architecture