use trait Singleton