Before revision:  Ivy allows high-level framework-agnostic functions to be implemented through the use of framework templates. The framework templates act as placeholders for the specific framework at development time , which are then determined at runtime.
After revision:  Ivy allows high-level framework-agnostic functions and classes , which are then determined at runtime.