use mixin; make template easy for testing