add SingletonTrait