# Persistent Classes

Behind the scenes, the persistence and validation mechanisms are quite complex and require the collaboration of many classes and pieces of configuration data. Thankfully, most of this complexity is hidden from the application programmer. Still, there are various classes that the application programmer will deal with:

- Framework Classes that act as an application programming interface. These API classes are directly referenced by application code.
- Generated Classes that are created for each business entity that serve two purposes:
  - They provide convenient methods (like property getters and setters) based on the structure of the specific entity, its fields, child collections, and key structure, for example.
  - They are necessary for the persistence mechanisms to work correctly.
- Handcoded classes that the application programmer is expected to write. Many of the handcoded classes are read by the artifact generator so the framework can wire up the handcoded functionality.

Some examples of the above classes are shown below.

Parent topic: Maintaining Business Entities