- the LivinGrimoire AGI software design pattern : all purpose
- builder : used to return the object after setting an attribute
- adapter: absursb a class's functionality into another class with different structure
- singleton : used for objects with only one instantiation in the program
- flyweight : saves storage space by using shallow references to attributes