implemented templated types for schema