Why is this needed? Don’t Traits already cover this functionality?