make singleton a trait