rename declarative to templated (more accurate)