Using callback module attributes is generally a cleaner way to define a behavior.

https://github.com/SkewedAspect/precursors-server/blob/master/apps/pre_entity_layer/src/pre_gen_entity.erl#L13