to support components (script part done)