VIRTUAL COMPONENTS DESIGN AND REUSE