Designing Component Libraries