add isSmartPhone()