updated Component Model