optimize component count