tools for operating on schemas