split up trait.ml