with trait