shuffle templates to resolvers to avoid OP