Integrated dependency injection into classes. Removed ID as a required field from class instances and added "name" as a required field on extend.