extendable trait