a trait approach (failing)