add trait support