feat(templates): add and edit templates