added component weight calculation