correct handling of trait constructors