add SmartAssert