rewrite to use the whisker package