prefer only defs in traits. They can still be extended by vals later.