trait separation