A template-only solution