SmartComponent