Use macro-able trait.