formatting
vectorize everywhere
need template creation side effect, even if empty