Component-based systems