diff --git a/src/016.5-ide-superpowers/041-autocomplete-for-string-literals.problem.ts b/src/015-essential-types-and-annotations/036-typing-array-reduce.problem.ts similarity index 100% rename from src/016.5-ide-superpowers/041-autocomplete-for-string-literals.problem.ts rename to src/015-essential-types-and-annotations/036-typing-array-reduce.problem.ts diff --git a/src/016.5-ide-superpowers/041-autocomplete-for-string-literals.solution.ts b/src/015-essential-types-and-annotations/036-typing-array-reduce.solution.ts similarity index 100% rename from src/016.5-ide-superpowers/041-autocomplete-for-string-literals.solution.ts rename to src/015-essential-types-and-annotations/036-typing-array-reduce.solution.ts diff --git a/src/015-essential-types-and-annotations/036-type-async-functions.problem.ts b/src/015-essential-types-and-annotations/037-type-async-functions.problem.ts similarity index 100% rename from src/015-essential-types-and-annotations/036-type-async-functions.problem.ts rename to src/015-essential-types-and-annotations/037-type-async-functions.problem.ts diff --git a/src/015-essential-types-and-annotations/036-type-async-functions.solution.ts b/src/015-essential-types-and-annotations/037-type-async-functions.solution.ts similarity index 100% rename from src/015-essential-types-and-annotations/036-type-async-functions.solution.ts rename to src/015-essential-types-and-annotations/037-type-async-functions.solution.ts diff --git a/src/016.5-ide-superpowers/037-understand-the-ts-server.explainer.ts b/src/016.5-ide-superpowers/038-understand-the-ts-server.explainer.ts similarity index 100% rename from src/016.5-ide-superpowers/037-understand-the-ts-server.explainer.ts rename to src/016.5-ide-superpowers/038-understand-the-ts-server.explainer.ts diff --git a/src/016.5-ide-superpowers/038-understand-how-to-hover-a-variable-to-see-its-type.problem.ts b/src/016.5-ide-superpowers/039-understand-how-to-hover-a-variable-to-see-its-type.problem.ts similarity index 100% rename from src/016.5-ide-superpowers/038-understand-how-to-hover-a-variable-to-see-its-type.problem.ts rename to src/016.5-ide-superpowers/039-understand-how-to-hover-a-variable-to-see-its-type.problem.ts diff --git a/src/016.5-ide-superpowers/038-understand-how-to-hover-a-variable-to-see-its-type.solution.ts b/src/016.5-ide-superpowers/039-understand-how-to-hover-a-variable-to-see-its-type.solution.ts similarity index 100% rename from src/016.5-ide-superpowers/038-understand-how-to-hover-a-variable-to-see-its-type.solution.ts rename to src/016.5-ide-superpowers/039-understand-how-to-hover-a-variable-to-see-its-type.solution.ts diff --git a/src/016.5-ide-superpowers/039-hovering-intersections-and-interfaces.problem.ts b/src/016.5-ide-superpowers/040-hovering-intersections-and-interfaces.problem.ts similarity index 100% rename from src/016.5-ide-superpowers/039-hovering-intersections-and-interfaces.problem.ts rename to src/016.5-ide-superpowers/040-hovering-intersections-and-interfaces.problem.ts diff --git a/src/016.5-ide-superpowers/040-autocomplete-for-object-properties.problem.ts b/src/016.5-ide-superpowers/041-autocomplete-for-object-properties.problem.ts similarity index 100% rename from src/016.5-ide-superpowers/040-autocomplete-for-object-properties.problem.ts rename to src/016.5-ide-superpowers/041-autocomplete-for-object-properties.problem.ts diff --git a/src/016.5-ide-superpowers/040-autocomplete-for-object-properties.solution.ts b/src/016.5-ide-superpowers/041-autocomplete-for-object-properties.solution.ts similarity index 100% rename from src/016.5-ide-superpowers/040-autocomplete-for-object-properties.solution.ts rename to src/016.5-ide-superpowers/041-autocomplete-for-object-properties.solution.ts diff --git a/src/016.5-ide-superpowers/042-autocomplete-for-jsx.problem.ts b/src/016.5-ide-superpowers/042-autocomplete-for-string-literals.problem.ts similarity index 100% rename from src/016.5-ide-superpowers/042-autocomplete-for-jsx.problem.ts rename to src/016.5-ide-superpowers/042-autocomplete-for-string-literals.problem.ts diff --git a/src/016.5-ide-superpowers/042-autocomplete-for-jsx.solution.ts b/src/016.5-ide-superpowers/042-autocomplete-for-string-literals.solution.ts similarity index 100% rename from src/016.5-ide-superpowers/042-autocomplete-for-jsx.solution.ts rename to src/016.5-ide-superpowers/042-autocomplete-for-string-literals.solution.ts diff --git a/src/016.5-ide-superpowers/043-basics-of-errors.problem.ts b/src/016.5-ide-superpowers/043-autocomplete-for-jsx.problem.ts similarity index 100% rename from src/016.5-ide-superpowers/043-basics-of-errors.problem.ts rename to src/016.5-ide-superpowers/043-autocomplete-for-jsx.problem.ts diff --git a/src/016.5-ide-superpowers/043-basics-of-errors.solution.ts b/src/016.5-ide-superpowers/043-autocomplete-for-jsx.solution.ts similarity index 100% rename from src/016.5-ide-superpowers/043-basics-of-errors.solution.ts rename to src/016.5-ide-superpowers/043-autocomplete-for-jsx.solution.ts diff --git a/src/016.5-ide-superpowers/044-go-to-definition.problem.ts b/src/016.5-ide-superpowers/044-basics-of-errors.problem.ts similarity index 100% rename from src/016.5-ide-superpowers/044-go-to-definition.problem.ts rename to src/016.5-ide-superpowers/044-basics-of-errors.problem.ts diff --git a/src/016.5-ide-superpowers/044-go-to-definition.solution.ts b/src/016.5-ide-superpowers/044-basics-of-errors.solution.ts similarity index 100% rename from src/016.5-ide-superpowers/044-go-to-definition.solution.ts rename to src/016.5-ide-superpowers/044-basics-of-errors.solution.ts diff --git a/src/016.5-ide-superpowers/045-find-all-references.problem.ts b/src/016.5-ide-superpowers/045-go-to-definition.problem.ts similarity index 100% rename from src/016.5-ide-superpowers/045-find-all-references.problem.ts rename to src/016.5-ide-superpowers/045-go-to-definition.problem.ts diff --git a/src/016.5-ide-superpowers/045-find-all-references.solution.ts b/src/016.5-ide-superpowers/045-go-to-definition.solution.ts similarity index 100% rename from src/016.5-ide-superpowers/045-find-all-references.solution.ts rename to src/016.5-ide-superpowers/045-go-to-definition.solution.ts diff --git a/src/016.5-ide-superpowers/046-rename-symbol.problem.ts b/src/016.5-ide-superpowers/046-find-all-references.problem.ts similarity index 100% rename from src/016.5-ide-superpowers/046-rename-symbol.problem.ts rename to src/016.5-ide-superpowers/046-find-all-references.problem.ts diff --git a/src/016.5-ide-superpowers/046-rename-symbol.solution.ts b/src/016.5-ide-superpowers/046-find-all-references.solution.ts similarity index 100% rename from src/016.5-ide-superpowers/046-rename-symbol.solution.ts rename to src/016.5-ide-superpowers/046-find-all-references.solution.ts diff --git a/src/016.5-ide-superpowers/047-resetting-the-typescript-server.problem.ts b/src/016.5-ide-superpowers/047-rename-symbol.problem.ts similarity index 100% rename from src/016.5-ide-superpowers/047-resetting-the-typescript-server.problem.ts rename to src/016.5-ide-superpowers/047-rename-symbol.problem.ts diff --git a/src/016.5-ide-superpowers/047-resetting-the-typescript-server.solution.ts b/src/016.5-ide-superpowers/047-rename-symbol.solution.ts similarity index 100% rename from src/016.5-ide-superpowers/047-resetting-the-typescript-server.solution.ts rename to src/016.5-ide-superpowers/047-rename-symbol.solution.ts diff --git a/src/020-objects/073-record-type-with-union-as-keys.problem.ts b/src/016.5-ide-superpowers/048-resetting-the-typescript-server.problem.ts similarity index 100% rename from src/020-objects/073-record-type-with-union-as-keys.problem.ts rename to src/016.5-ide-superpowers/048-resetting-the-typescript-server.problem.ts diff --git a/src/020-objects/073-record-type-with-union-as-keys.solution.ts b/src/016.5-ide-superpowers/048-resetting-the-typescript-server.solution.ts similarity index 100% rename from src/020-objects/073-record-type-with-union-as-keys.solution.ts rename to src/016.5-ide-superpowers/048-resetting-the-typescript-server.solution.ts diff --git a/src/018-unions-and-narrowing/048-introduction-to-unions.problem.ts b/src/018-unions-and-narrowing/049-introduction-to-unions.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/048-introduction-to-unions.problem.ts rename to src/018-unions-and-narrowing/049-introduction-to-unions.problem.ts diff --git a/src/018-unions-and-narrowing/048-introduction-to-unions.solution.ts b/src/018-unions-and-narrowing/049-introduction-to-unions.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/048-introduction-to-unions.solution.ts rename to src/018-unions-and-narrowing/049-introduction-to-unions.solution.ts diff --git a/src/018-unions-and-narrowing/049-literal-types.problem.ts b/src/018-unions-and-narrowing/050-literal-types.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/049-literal-types.problem.ts rename to src/018-unions-and-narrowing/050-literal-types.problem.ts diff --git a/src/018-unions-and-narrowing/049-literal-types.solution.1.ts b/src/018-unions-and-narrowing/050-literal-types.solution.1.ts similarity index 100% rename from src/018-unions-and-narrowing/049-literal-types.solution.1.ts rename to src/018-unions-and-narrowing/050-literal-types.solution.1.ts diff --git a/src/018-unions-and-narrowing/049-literal-types.solution.2.ts b/src/018-unions-and-narrowing/050-literal-types.solution.2.ts similarity index 100% rename from src/018-unions-and-narrowing/049-literal-types.solution.2.ts rename to src/018-unions-and-narrowing/050-literal-types.solution.2.ts diff --git a/src/018-unions-and-narrowing/050-combining-unions.problem.ts b/src/018-unions-and-narrowing/051-combining-unions.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/050-combining-unions.problem.ts rename to src/018-unions-and-narrowing/051-combining-unions.problem.ts diff --git a/src/018-unions-and-narrowing/050-combining-unions.solution.ts b/src/018-unions-and-narrowing/051-combining-unions.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/050-combining-unions.solution.ts rename to src/018-unions-and-narrowing/051-combining-unions.solution.ts diff --git a/src/018-unions-and-narrowing/051-how-big-can-a-union-be.explainer.ts b/src/018-unions-and-narrowing/052-how-big-can-a-union-be.explainer.ts similarity index 100% rename from src/018-unions-and-narrowing/051-how-big-can-a-union-be.explainer.ts rename to src/018-unions-and-narrowing/052-how-big-can-a-union-be.explainer.ts diff --git a/src/018-unions-and-narrowing/052-literals-vs-wider-types.explainer.ts b/src/018-unions-and-narrowing/053-literals-vs-wider-types.explainer.ts similarity index 100% rename from src/018-unions-and-narrowing/052-literals-vs-wider-types.explainer.ts rename to src/018-unions-and-narrowing/053-literals-vs-wider-types.explainer.ts diff --git a/src/018-unions-and-narrowing/053-narrowing-unions-with-typeof.explainer.ts b/src/018-unions-and-narrowing/054-narrowing-unions-with-typeof.explainer.ts similarity index 100% rename from src/018-unions-and-narrowing/053-narrowing-unions-with-typeof.explainer.ts rename to src/018-unions-and-narrowing/054-narrowing-unions-with-typeof.explainer.ts diff --git a/src/018-unions-and-narrowing/054-narrowing-with-if-statements.problem.ts b/src/018-unions-and-narrowing/055-narrowing-with-if-statements.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/054-narrowing-with-if-statements.problem.ts rename to src/018-unions-and-narrowing/055-narrowing-with-if-statements.problem.ts diff --git a/src/018-unions-and-narrowing/054-narrowing-with-if-statements.solution.1.ts b/src/018-unions-and-narrowing/055-narrowing-with-if-statements.solution.1.ts similarity index 100% rename from src/018-unions-and-narrowing/054-narrowing-with-if-statements.solution.1.ts rename to src/018-unions-and-narrowing/055-narrowing-with-if-statements.solution.1.ts diff --git a/src/018-unions-and-narrowing/054-narrowing-with-if-statements.solution.2.ts b/src/018-unions-and-narrowing/055-narrowing-with-if-statements.solution.2.ts similarity index 100% rename from src/018-unions-and-narrowing/054-narrowing-with-if-statements.solution.2.ts rename to src/018-unions-and-narrowing/055-narrowing-with-if-statements.solution.2.ts diff --git a/src/018-unions-and-narrowing/054-narrowing-with-if-statements.solution.3.ts b/src/018-unions-and-narrowing/055-narrowing-with-if-statements.solution.3.ts similarity index 100% rename from src/018-unions-and-narrowing/054-narrowing-with-if-statements.solution.3.ts rename to src/018-unions-and-narrowing/055-narrowing-with-if-statements.solution.3.ts diff --git a/src/018-unions-and-narrowing/054-narrowing-with-if-statements.solution.4.ts b/src/018-unions-and-narrowing/055-narrowing-with-if-statements.solution.4.ts similarity index 100% rename from src/018-unions-and-narrowing/054-narrowing-with-if-statements.solution.4.ts rename to src/018-unions-and-narrowing/055-narrowing-with-if-statements.solution.4.ts diff --git a/src/018-unions-and-narrowing/054-narrowing-with-if-statements.solution.5.ts b/src/018-unions-and-narrowing/055-narrowing-with-if-statements.solution.5.ts similarity index 100% rename from src/018-unions-and-narrowing/054-narrowing-with-if-statements.solution.5.ts rename to src/018-unions-and-narrowing/055-narrowing-with-if-statements.solution.5.ts diff --git a/src/018-unions-and-narrowing/055-narrowing-with-boolean-wont-work.explainer.ts b/src/018-unions-and-narrowing/056-narrowing-with-boolean-wont-work.explainer.ts similarity index 100% rename from src/018-unions-and-narrowing/055-narrowing-with-boolean-wont-work.explainer.ts rename to src/018-unions-and-narrowing/056-narrowing-with-boolean-wont-work.explainer.ts diff --git a/src/018-unions-and-narrowing/056-throwing-errors-to-narrow.problem.ts b/src/018-unions-and-narrowing/057-throwing-errors-to-narrow.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/056-throwing-errors-to-narrow.problem.ts rename to src/018-unions-and-narrowing/057-throwing-errors-to-narrow.problem.ts diff --git a/src/018-unions-and-narrowing/056-throwing-errors-to-narrow.solution.ts b/src/018-unions-and-narrowing/057-throwing-errors-to-narrow.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/056-throwing-errors-to-narrow.solution.ts rename to src/018-unions-and-narrowing/057-throwing-errors-to-narrow.solution.ts diff --git a/src/018-unions-and-narrowing/057-narrowing-with-instanceof-statements.problem.ts b/src/018-unions-and-narrowing/058-narrowing-with-instanceof-statements.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/057-narrowing-with-instanceof-statements.problem.ts rename to src/018-unions-and-narrowing/058-narrowing-with-instanceof-statements.problem.ts diff --git a/src/018-unions-and-narrowing/057-narrowing-with-instanceof-statements.solution.ts b/src/018-unions-and-narrowing/058-narrowing-with-instanceof-statements.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/057-narrowing-with-instanceof-statements.solution.ts rename to src/018-unions-and-narrowing/058-narrowing-with-instanceof-statements.solution.ts diff --git a/src/018-unions-and-narrowing/058-narrowing-with-in-statements.problem.ts b/src/018-unions-and-narrowing/059-narrowing-with-in-statements.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/058-narrowing-with-in-statements.problem.ts rename to src/018-unions-and-narrowing/059-narrowing-with-in-statements.problem.ts diff --git a/src/018-unions-and-narrowing/058-narrowing-with-in-statements.solution.ts b/src/018-unions-and-narrowing/059-narrowing-with-in-statements.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/058-narrowing-with-in-statements.solution.ts rename to src/018-unions-and-narrowing/059-narrowing-with-in-statements.solution.ts diff --git a/src/018-unions-and-narrowing/059-narrowing-unknown-to-a-value.problem.ts b/src/018-unions-and-narrowing/060-narrowing-unknown-to-a-value.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/059-narrowing-unknown-to-a-value.problem.ts rename to src/018-unions-and-narrowing/060-narrowing-unknown-to-a-value.problem.ts diff --git a/src/018-unions-and-narrowing/059-narrowing-unknown-to-a-value.solution.ts b/src/018-unions-and-narrowing/060-narrowing-unknown-to-a-value.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/059-narrowing-unknown-to-a-value.solution.ts rename to src/018-unions-and-narrowing/060-narrowing-unknown-to-a-value.solution.ts diff --git a/src/018-unions-and-narrowing/060-narrowing-with-ternaries.problem.ts b/src/018-unions-and-narrowing/061-narrowing-with-ternaries.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/060-narrowing-with-ternaries.problem.ts rename to src/018-unions-and-narrowing/061-narrowing-with-ternaries.problem.ts diff --git a/src/018-unions-and-narrowing/060-narrowing-with-ternaries.solution.ts b/src/018-unions-and-narrowing/061-narrowing-with-ternaries.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/060-narrowing-with-ternaries.solution.ts rename to src/018-unions-and-narrowing/061-narrowing-with-ternaries.solution.ts diff --git a/src/018-unions-and-narrowing/061-narrowing-with-nullish-coalescing.problem.ts b/src/018-unions-and-narrowing/062-narrowing-with-nullish-coalescing.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/061-narrowing-with-nullish-coalescing.problem.ts rename to src/018-unions-and-narrowing/062-narrowing-with-nullish-coalescing.problem.ts diff --git a/src/018-unions-and-narrowing/061-narrowing-with-nullish-coalescing.solution.ts b/src/018-unions-and-narrowing/062-narrowing-with-nullish-coalescing.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/061-narrowing-with-nullish-coalescing.solution.ts rename to src/018-unions-and-narrowing/062-narrowing-with-nullish-coalescing.solution.ts diff --git a/src/028-mutability/083-let-and-const-inference.problem.ts b/src/018-unions-and-narrowing/063-evolving-any.problem.ts similarity index 100% rename from src/028-mutability/083-let-and-const-inference.problem.ts rename to src/018-unions-and-narrowing/063-evolving-any.problem.ts diff --git a/src/028-mutability/083-let-and-const-inference.solution.ts b/src/018-unions-and-narrowing/063-evolving-any.solution.ts similarity index 100% rename from src/028-mutability/083-let-and-const-inference.solution.ts rename to src/018-unions-and-narrowing/063-evolving-any.solution.ts diff --git a/src/028-mutability/084-object-property-inference.problem.ts b/src/018-unions-and-narrowing/064-evolving-any-arrays.problem.ts similarity index 100% rename from src/028-mutability/084-object-property-inference.problem.ts rename to src/018-unions-and-narrowing/064-evolving-any-arrays.problem.ts diff --git a/src/028-mutability/084-object-property-inference.solution.ts b/src/018-unions-and-narrowing/064-evolving-any-arrays.solution.ts similarity index 100% rename from src/028-mutability/084-object-property-inference.solution.ts rename to src/018-unions-and-narrowing/064-evolving-any-arrays.solution.ts diff --git a/src/018-unions-and-narrowing/062-intro-to-discriminated-unions.problem.ts b/src/018-unions-and-narrowing/065-intro-to-discriminated-unions.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/062-intro-to-discriminated-unions.problem.ts rename to src/018-unions-and-narrowing/065-intro-to-discriminated-unions.problem.ts diff --git a/src/018-unions-and-narrowing/062-intro-to-discriminated-unions.solution.ts b/src/018-unions-and-narrowing/065-intro-to-discriminated-unions.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/062-intro-to-discriminated-unions.solution.ts rename to src/018-unions-and-narrowing/065-intro-to-discriminated-unions.solution.ts diff --git a/src/018-unions-and-narrowing/063-destructuring-a-discriminated-union.problem.ts b/src/018-unions-and-narrowing/066-destructuring-a-discriminated-union.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/063-destructuring-a-discriminated-union.problem.ts rename to src/018-unions-and-narrowing/066-destructuring-a-discriminated-union.problem.ts diff --git a/src/018-unions-and-narrowing/063-destructuring-a-discriminated-union.solution.ts b/src/018-unions-and-narrowing/066-destructuring-a-discriminated-union.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/063-destructuring-a-discriminated-union.solution.ts rename to src/018-unions-and-narrowing/066-destructuring-a-discriminated-union.solution.ts diff --git a/src/018-unions-and-narrowing/064-narrowing-a-discriminated-union-with-a-switch-statement.problem.ts b/src/018-unions-and-narrowing/067-narrowing-a-discriminated-union-with-a-switch-statement.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/064-narrowing-a-discriminated-union-with-a-switch-statement.problem.ts rename to src/018-unions-and-narrowing/067-narrowing-a-discriminated-union-with-a-switch-statement.problem.ts diff --git a/src/018-unions-and-narrowing/064-narrowing-a-discriminated-union-with-a-switch-statement.solution.ts b/src/018-unions-and-narrowing/067-narrowing-a-discriminated-union-with-a-switch-statement.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/064-narrowing-a-discriminated-union-with-a-switch-statement.solution.ts rename to src/018-unions-and-narrowing/067-narrowing-a-discriminated-union-with-a-switch-statement.solution.ts diff --git a/src/018-unions-and-narrowing/065-narrowing-with-switch-true.explainer.ts b/src/018-unions-and-narrowing/068-narrowing-with-switch-true.explainer.ts similarity index 100% rename from src/018-unions-and-narrowing/065-narrowing-with-switch-true.explainer.ts rename to src/018-unions-and-narrowing/068-narrowing-with-switch-true.explainer.ts diff --git a/src/018-unions-and-narrowing/066-destructuring-a-discriminated-tuple.problem.ts b/src/018-unions-and-narrowing/069-destructuring-a-discriminated-tuple.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/066-destructuring-a-discriminated-tuple.problem.ts rename to src/018-unions-and-narrowing/069-destructuring-a-discriminated-tuple.problem.ts diff --git a/src/018-unions-and-narrowing/066-destructuring-a-discriminated-tuple.solution.ts b/src/018-unions-and-narrowing/069-destructuring-a-discriminated-tuple.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/066-destructuring-a-discriminated-tuple.solution.ts rename to src/018-unions-and-narrowing/069-destructuring-a-discriminated-tuple.solution.ts diff --git a/src/018-unions-and-narrowing/067-discriminated-booleans.problem.ts b/src/018-unions-and-narrowing/070-discriminated-booleans.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/067-discriminated-booleans.problem.ts rename to src/018-unions-and-narrowing/070-discriminated-booleans.problem.ts diff --git a/src/018-unions-and-narrowing/067-discriminated-booleans.solution.ts b/src/018-unions-and-narrowing/070-discriminated-booleans.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/067-discriminated-booleans.solution.ts rename to src/018-unions-and-narrowing/070-discriminated-booleans.solution.ts diff --git a/src/028-mutability/086-readonly-object-properties.problem.ts b/src/018-unions-and-narrowing/071-adding-defaults-to-discriminated-union.problem.ts similarity index 100% rename from src/028-mutability/086-readonly-object-properties.problem.ts rename to src/018-unions-and-narrowing/071-adding-defaults-to-discriminated-union.problem.ts diff --git a/src/028-mutability/086-readonly-object-properties.solution.ts b/src/018-unions-and-narrowing/071-adding-defaults-to-discriminated-union.solution.ts similarity index 100% rename from src/028-mutability/086-readonly-object-properties.solution.ts rename to src/018-unions-and-narrowing/071-adding-defaults-to-discriminated-union.solution.ts diff --git a/src/020-objects/068-extend-object-using-intersections.problem.ts b/src/020-objects/072-extend-object-using-intersections.problem.ts similarity index 100% rename from src/020-objects/068-extend-object-using-intersections.problem.ts rename to src/020-objects/072-extend-object-using-intersections.problem.ts diff --git a/src/020-objects/068-extend-object-using-intersections.solution.ts b/src/020-objects/072-extend-object-using-intersections.solution.ts similarity index 100% rename from src/020-objects/068-extend-object-using-intersections.solution.ts rename to src/020-objects/072-extend-object-using-intersections.solution.ts diff --git a/src/020-objects/069-extend-object-using-interfaces.problem.ts b/src/020-objects/073-extend-object-using-interfaces.problem.ts similarity index 100% rename from src/020-objects/069-extend-object-using-interfaces.problem.ts rename to src/020-objects/073-extend-object-using-interfaces.problem.ts diff --git a/src/020-objects/069-extend-object-using-interfaces.solution.1.ts b/src/020-objects/073-extend-object-using-interfaces.solution.1.ts similarity index 100% rename from src/020-objects/069-extend-object-using-interfaces.solution.1.ts rename to src/020-objects/073-extend-object-using-interfaces.solution.1.ts diff --git a/src/020-objects/069-extend-object-using-interfaces.solution.2.ts b/src/020-objects/073-extend-object-using-interfaces.solution.2.ts similarity index 100% rename from src/020-objects/069-extend-object-using-interfaces.solution.2.ts rename to src/020-objects/073-extend-object-using-interfaces.solution.2.ts diff --git a/src/020-objects/070-compare-between-intersections-and-interfaces.explainer.ts b/src/020-objects/074-compare-between-intersections-and-interfaces.explainer.ts similarity index 100% rename from src/020-objects/070-compare-between-intersections-and-interfaces.explainer.ts rename to src/020-objects/074-compare-between-intersections-and-interfaces.explainer.ts diff --git a/src/020-objects/071-index-signatures.problem.ts b/src/020-objects/075-index-signatures.problem.ts similarity index 100% rename from src/020-objects/071-index-signatures.problem.ts rename to src/020-objects/075-index-signatures.problem.ts diff --git a/src/020-objects/071-index-signatures.solution.1.ts b/src/020-objects/075-index-signatures.solution.1.ts similarity index 100% rename from src/020-objects/071-index-signatures.solution.1.ts rename to src/020-objects/075-index-signatures.solution.1.ts diff --git a/src/020-objects/071-index-signatures.solution.2.ts b/src/020-objects/075-index-signatures.solution.2.ts similarity index 100% rename from src/020-objects/071-index-signatures.solution.2.ts rename to src/020-objects/075-index-signatures.solution.2.ts diff --git a/src/020-objects/071-index-signatures.solution.3.ts b/src/020-objects/075-index-signatures.solution.3.ts similarity index 100% rename from src/020-objects/071-index-signatures.solution.3.ts rename to src/020-objects/075-index-signatures.solution.3.ts diff --git a/src/020-objects/071-index-signatures.solution.4.ts b/src/020-objects/075-index-signatures.solution.4.ts similarity index 100% rename from src/020-objects/071-index-signatures.solution.4.ts rename to src/020-objects/075-index-signatures.solution.4.ts diff --git a/src/020-objects/072-index-signatures-with-defined-keys.problem.ts b/src/020-objects/076-index-signatures-with-defined-keys.problem.ts similarity index 100% rename from src/020-objects/072-index-signatures-with-defined-keys.problem.ts rename to src/020-objects/076-index-signatures-with-defined-keys.problem.ts diff --git a/src/020-objects/072-index-signatures-with-defined-keys.solution.1.ts b/src/020-objects/076-index-signatures-with-defined-keys.solution.1.ts similarity index 100% rename from src/020-objects/072-index-signatures-with-defined-keys.solution.1.ts rename to src/020-objects/076-index-signatures-with-defined-keys.solution.1.ts diff --git a/src/020-objects/072-index-signatures-with-defined-keys.solution.2.ts b/src/020-objects/076-index-signatures-with-defined-keys.solution.2.ts similarity index 100% rename from src/020-objects/072-index-signatures-with-defined-keys.solution.2.ts rename to src/020-objects/076-index-signatures-with-defined-keys.solution.2.ts diff --git a/src/028-mutability/087-intro-to-as-const.problem.ts b/src/020-objects/077-record-type-with-union-as-keys.problem.ts similarity index 100% rename from src/028-mutability/087-intro-to-as-const.problem.ts rename to src/020-objects/077-record-type-with-union-as-keys.problem.ts diff --git a/src/028-mutability/087-intro-to-as-const.solution.ts b/src/020-objects/077-record-type-with-union-as-keys.solution.ts similarity index 100% rename from src/028-mutability/087-intro-to-as-const.solution.ts rename to src/020-objects/077-record-type-with-union-as-keys.solution.ts diff --git a/src/020-objects/074-declaration-merging-of-interfaces.problem.ts b/src/020-objects/078-declaration-merging-of-interfaces.problem.ts similarity index 100% rename from src/020-objects/074-declaration-merging-of-interfaces.problem.ts rename to src/020-objects/078-declaration-merging-of-interfaces.problem.ts diff --git a/src/020-objects/074-declaration-merging-of-interfaces.solution.ts b/src/020-objects/078-declaration-merging-of-interfaces.solution.ts similarity index 100% rename from src/020-objects/074-declaration-merging-of-interfaces.solution.ts rename to src/020-objects/078-declaration-merging-of-interfaces.solution.ts diff --git a/src/020-objects/075-pick-type-helper.problem.ts b/src/020-objects/079-pick-type-helper.problem.ts similarity index 100% rename from src/020-objects/075-pick-type-helper.problem.ts rename to src/020-objects/079-pick-type-helper.problem.ts diff --git a/src/020-objects/075-pick-type-helper.solution.1.ts b/src/020-objects/079-pick-type-helper.solution.1.ts similarity index 100% rename from src/020-objects/075-pick-type-helper.solution.1.ts rename to src/020-objects/079-pick-type-helper.solution.1.ts diff --git a/src/020-objects/075-pick-type-helper.solution.2.ts b/src/020-objects/079-pick-type-helper.solution.2.ts similarity index 100% rename from src/020-objects/075-pick-type-helper.solution.2.ts rename to src/020-objects/079-pick-type-helper.solution.2.ts diff --git a/src/020-objects/076-common-keys-of-unions-of-objects.problem.ts b/src/020-objects/080-common-keys-of-unions-of-objects.problem.ts similarity index 100% rename from src/020-objects/076-common-keys-of-unions-of-objects.problem.ts rename to src/020-objects/080-common-keys-of-unions-of-objects.problem.ts diff --git a/src/020-objects/076-common-keys-of-unions-of-objects.solution.ts b/src/020-objects/080-common-keys-of-unions-of-objects.solution.ts similarity index 100% rename from src/020-objects/076-common-keys-of-unions-of-objects.solution.ts rename to src/020-objects/080-common-keys-of-unions-of-objects.solution.ts diff --git a/src/020-objects/077-omit-type-helper.problem.ts b/src/020-objects/081-omit-type-helper.problem.ts similarity index 100% rename from src/020-objects/077-omit-type-helper.problem.ts rename to src/020-objects/081-omit-type-helper.problem.ts diff --git a/src/020-objects/077-omit-type-helper.solution.1.ts b/src/020-objects/081-omit-type-helper.solution.1.ts similarity index 100% rename from src/020-objects/077-omit-type-helper.solution.1.ts rename to src/020-objects/081-omit-type-helper.solution.1.ts diff --git a/src/020-objects/077-omit-type-helper.solution.2.ts b/src/020-objects/081-omit-type-helper.solution.2.ts similarity index 100% rename from src/020-objects/077-omit-type-helper.solution.2.ts rename to src/020-objects/081-omit-type-helper.solution.2.ts diff --git a/src/020-objects/078-no-autocomplete-on-omit.explainer.ts b/src/020-objects/082-no-autocomplete-on-omit.explainer.ts similarity index 100% rename from src/020-objects/078-no-autocomplete-on-omit.explainer.ts rename to src/020-objects/082-no-autocomplete-on-omit.explainer.ts diff --git a/src/020-objects/079-omit-cant-distribute.explainer.1.ts b/src/020-objects/083-omit-cant-distribute.explainer.1.ts similarity index 100% rename from src/020-objects/079-omit-cant-distribute.explainer.1.ts rename to src/020-objects/083-omit-cant-distribute.explainer.1.ts diff --git a/src/020-objects/079-omit-cant-distribute.explainer.2.ts b/src/020-objects/083-omit-cant-distribute.explainer.2.ts similarity index 100% rename from src/020-objects/079-omit-cant-distribute.explainer.2.ts rename to src/020-objects/083-omit-cant-distribute.explainer.2.ts diff --git a/src/020-objects/080-omit-or-pick-more-than-one-thing.problem.ts b/src/020-objects/084-omit-or-pick-more-than-one-thing.problem.ts similarity index 100% rename from src/020-objects/080-omit-or-pick-more-than-one-thing.problem.ts rename to src/020-objects/084-omit-or-pick-more-than-one-thing.problem.ts diff --git a/src/020-objects/080-omit-or-pick-more-than-one-thing.solution.1.ts b/src/020-objects/084-omit-or-pick-more-than-one-thing.solution.1.ts similarity index 100% rename from src/020-objects/080-omit-or-pick-more-than-one-thing.solution.1.ts rename to src/020-objects/084-omit-or-pick-more-than-one-thing.solution.1.ts diff --git a/src/020-objects/080-omit-or-pick-more-than-one-thing.solution.2.ts b/src/020-objects/084-omit-or-pick-more-than-one-thing.solution.2.ts similarity index 100% rename from src/020-objects/080-omit-or-pick-more-than-one-thing.solution.2.ts rename to src/020-objects/084-omit-or-pick-more-than-one-thing.solution.2.ts diff --git a/src/020-objects/081-partial-type-helper.problem.ts b/src/020-objects/085-partial-type-helper.problem.ts similarity index 100% rename from src/020-objects/081-partial-type-helper.problem.ts rename to src/020-objects/085-partial-type-helper.problem.ts diff --git a/src/020-objects/081-partial-type-helper.solution.ts b/src/020-objects/085-partial-type-helper.solution.ts similarity index 100% rename from src/020-objects/081-partial-type-helper.solution.ts rename to src/020-objects/085-partial-type-helper.solution.ts diff --git a/src/020-objects/082-required-type-helper.explainer.ts b/src/020-objects/086-required-type-helper.explainer.ts similarity index 100% rename from src/020-objects/082-required-type-helper.explainer.ts rename to src/020-objects/086-required-type-helper.explainer.ts diff --git a/src/028-mutability/088-as-const-vs-object-freeze.problem.ts b/src/028-mutability/087-let-and-const-inference.problem.ts similarity index 100% rename from src/028-mutability/088-as-const-vs-object-freeze.problem.ts rename to src/028-mutability/087-let-and-const-inference.problem.ts diff --git a/src/028-mutability/088-as-const-vs-object-freeze.solution.ts b/src/028-mutability/087-let-and-const-inference.solution.ts similarity index 100% rename from src/028-mutability/088-as-const-vs-object-freeze.solution.ts rename to src/028-mutability/087-let-and-const-inference.solution.ts diff --git a/src/028-mutability/089-readonly-arrays.problem.ts b/src/028-mutability/088-object-property-inference.problem.ts similarity index 100% rename from src/028-mutability/089-readonly-arrays.problem.ts rename to src/028-mutability/088-object-property-inference.problem.ts diff --git a/src/028-mutability/089-readonly-arrays.solution.ts b/src/028-mutability/088-object-property-inference.solution.ts similarity index 100% rename from src/028-mutability/089-readonly-arrays.solution.ts rename to src/028-mutability/088-object-property-inference.solution.ts diff --git a/src/028-mutability/085-narrowing-in-different-scopes.problem.ts b/src/028-mutability/089-narrowing-in-different-scopes.problem.ts similarity index 100% rename from src/028-mutability/085-narrowing-in-different-scopes.problem.ts rename to src/028-mutability/089-narrowing-in-different-scopes.problem.ts diff --git a/src/028-mutability/085-narrowing-in-different-scopes.solution.1.ts b/src/028-mutability/089-narrowing-in-different-scopes.solution.1.ts similarity index 100% rename from src/028-mutability/085-narrowing-in-different-scopes.solution.1.ts rename to src/028-mutability/089-narrowing-in-different-scopes.solution.1.ts diff --git a/src/028-mutability/085-narrowing-in-different-scopes.solution.2.ts b/src/028-mutability/089-narrowing-in-different-scopes.solution.2.ts similarity index 100% rename from src/028-mutability/085-narrowing-in-different-scopes.solution.2.ts rename to src/028-mutability/089-narrowing-in-different-scopes.solution.2.ts diff --git a/src/028-mutability/090-includes-on-readonly-arrays.problem.ts b/src/028-mutability/090-readonly-object-properties.problem.ts similarity index 100% rename from src/028-mutability/090-includes-on-readonly-arrays.problem.ts rename to src/028-mutability/090-readonly-object-properties.problem.ts diff --git a/src/028-mutability/090-includes-on-readonly-arrays.solution.ts b/src/028-mutability/090-readonly-object-properties.solution.ts similarity index 100% rename from src/028-mutability/090-includes-on-readonly-arrays.solution.ts rename to src/028-mutability/090-readonly-object-properties.solution.ts diff --git a/src/028-mutability/091-readonly-arrays-vs-mutable-arrays.problem.ts b/src/028-mutability/091-intro-to-as-const.problem.ts similarity index 100% rename from src/028-mutability/091-readonly-arrays-vs-mutable-arrays.problem.ts rename to src/028-mutability/091-intro-to-as-const.problem.ts diff --git a/src/028-mutability/091-readonly-arrays-vs-mutable-arrays.solution.ts b/src/028-mutability/091-intro-to-as-const.solution.ts similarity index 100% rename from src/028-mutability/091-readonly-arrays-vs-mutable-arrays.solution.ts rename to src/028-mutability/091-intro-to-as-const.solution.ts diff --git a/src/028-mutability/092-as-const-to-make-functions-infer-a-tuple.problem.ts b/src/028-mutability/092-as-const-vs-object-freeze.problem.ts similarity index 100% rename from src/028-mutability/092-as-const-to-make-functions-infer-a-tuple.problem.ts rename to src/028-mutability/092-as-const-vs-object-freeze.problem.ts diff --git a/src/028-mutability/092-as-const-to-make-functions-infer-a-tuple.solution.ts b/src/028-mutability/092-as-const-vs-object-freeze.solution.ts similarity index 100% rename from src/028-mutability/092-as-const-to-make-functions-infer-a-tuple.solution.ts rename to src/028-mutability/092-as-const-vs-object-freeze.solution.ts diff --git a/src/028-mutability/093-as-const-can-make-strings-infer-as-their-literals-in-objects.problem.ts b/src/028-mutability/093-readonly-arrays.problem.ts similarity index 100% rename from src/028-mutability/093-as-const-can-make-strings-infer-as-their-literals-in-objects.problem.ts rename to src/028-mutability/093-readonly-arrays.problem.ts diff --git a/src/028-mutability/093-as-const-can-make-strings-infer-as-their-literals-in-objects.solution.ts b/src/028-mutability/093-readonly-arrays.solution.ts similarity index 100% rename from src/028-mutability/093-as-const-can-make-strings-infer-as-their-literals-in-objects.solution.ts rename to src/028-mutability/093-readonly-arrays.solution.ts diff --git a/src/030-classes/094-understand-classes.problem.ts b/src/028-mutability/094-includes-on-readonly-arrays.problem.ts similarity index 100% rename from src/030-classes/094-understand-classes.problem.ts rename to src/028-mutability/094-includes-on-readonly-arrays.problem.ts diff --git a/src/030-classes/094-understand-classes.solution.ts b/src/028-mutability/094-includes-on-readonly-arrays.solution.ts similarity index 100% rename from src/030-classes/094-understand-classes.solution.ts rename to src/028-mutability/094-includes-on-readonly-arrays.solution.ts diff --git a/src/030-classes/095-public-and-private-properties.problem.ts b/src/028-mutability/095-readonly-arrays-vs-mutable-arrays.problem.ts similarity index 100% rename from src/030-classes/095-public-and-private-properties.problem.ts rename to src/028-mutability/095-readonly-arrays-vs-mutable-arrays.problem.ts diff --git a/src/030-classes/095-public-and-private-properties.solution.ts b/src/028-mutability/095-readonly-arrays-vs-mutable-arrays.solution.ts similarity index 100% rename from src/030-classes/095-public-and-private-properties.solution.ts rename to src/028-mutability/095-readonly-arrays-vs-mutable-arrays.solution.ts diff --git a/src/030-classes/096-hash-in-javascript.problem.ts b/src/028-mutability/096-as-const-to-make-functions-infer-a-tuple.problem.ts similarity index 100% rename from src/030-classes/096-hash-in-javascript.problem.ts rename to src/028-mutability/096-as-const-to-make-functions-infer-a-tuple.problem.ts diff --git a/src/030-classes/096-hash-in-javascript.solution.ts b/src/028-mutability/096-as-const-to-make-functions-infer-a-tuple.solution.ts similarity index 100% rename from src/030-classes/096-hash-in-javascript.solution.ts rename to src/028-mutability/096-as-const-to-make-functions-infer-a-tuple.solution.ts diff --git a/src/030-classes/097-optional-class-properties.problem.ts b/src/028-mutability/097-as-const-can-make-strings-infer-as-their-literals-in-objects.problem.ts similarity index 100% rename from src/030-classes/097-optional-class-properties.problem.ts rename to src/028-mutability/097-as-const-can-make-strings-infer-as-their-literals-in-objects.problem.ts diff --git a/src/030-classes/097-optional-class-properties.solution.ts b/src/028-mutability/097-as-const-can-make-strings-infer-as-their-literals-in-objects.solution.ts similarity index 100% rename from src/030-classes/097-optional-class-properties.solution.ts rename to src/028-mutability/097-as-const-can-make-strings-infer-as-their-literals-in-objects.solution.ts diff --git a/src/030-classes/098-readonly-class-properties.problem.ts b/src/030-classes/098-understand-classes.problem.ts similarity index 100% rename from src/030-classes/098-readonly-class-properties.problem.ts rename to src/030-classes/098-understand-classes.problem.ts diff --git a/src/030-classes/098-readonly-class-properties.solution.ts b/src/030-classes/098-understand-classes.solution.ts similarity index 100% rename from src/030-classes/098-readonly-class-properties.solution.ts rename to src/030-classes/098-understand-classes.solution.ts diff --git a/src/030-classes/099-class-methods.problem.ts b/src/030-classes/099-public-and-private-properties.problem.ts similarity index 100% rename from src/030-classes/099-class-methods.problem.ts rename to src/030-classes/099-public-and-private-properties.problem.ts diff --git a/src/030-classes/099-class-methods.solution.ts b/src/030-classes/099-public-and-private-properties.solution.ts similarity index 100% rename from src/030-classes/099-class-methods.solution.ts rename to src/030-classes/099-public-and-private-properties.solution.ts diff --git a/src/030-classes/100-decorators.problem.ts b/src/030-classes/100-hash-in-javascript.problem.ts similarity index 100% rename from src/030-classes/100-decorators.problem.ts rename to src/030-classes/100-hash-in-javascript.problem.ts diff --git a/src/030-classes/100-decorators.solution.ts b/src/030-classes/100-hash-in-javascript.solution.ts similarity index 100% rename from src/030-classes/100-decorators.solution.ts rename to src/030-classes/100-hash-in-javascript.solution.ts diff --git a/src/030-classes/101-implementing-interfaces.problem.ts b/src/030-classes/101-optional-class-properties.problem.ts similarity index 100% rename from src/030-classes/101-implementing-interfaces.problem.ts rename to src/030-classes/101-optional-class-properties.problem.ts diff --git a/src/030-classes/101-implementing-interfaces.solution.ts b/src/030-classes/101-optional-class-properties.solution.ts similarity index 100% rename from src/030-classes/101-implementing-interfaces.solution.ts rename to src/030-classes/101-optional-class-properties.solution.ts diff --git a/src/030-classes/102-typing-this-in-functions.problem.ts b/src/030-classes/102-readonly-class-properties.problem.ts similarity index 100% rename from src/030-classes/102-typing-this-in-functions.problem.ts rename to src/030-classes/102-readonly-class-properties.problem.ts diff --git a/src/030-classes/102-typing-this-in-functions.solution.ts b/src/030-classes/102-readonly-class-properties.solution.ts similarity index 100% rename from src/030-classes/102-typing-this-in-functions.solution.ts rename to src/030-classes/102-readonly-class-properties.solution.ts diff --git a/src/030-classes/103-can-you-type-this-in-functions.problem.ts b/src/030-classes/103-class-methods.problem.ts similarity index 100% rename from src/030-classes/103-can-you-type-this-in-functions.problem.ts rename to src/030-classes/103-class-methods.problem.ts diff --git a/src/030-classes/103-can-you-type-this-in-functions.solution.ts b/src/030-classes/103-class-methods.solution.ts similarity index 100% rename from src/030-classes/103-can-you-type-this-in-functions.solution.ts rename to src/030-classes/103-class-methods.solution.ts diff --git a/src/032-typescript-only-features/104-auto-assignation-in-classes.problem.ts b/src/030-classes/104-decorators.problem.ts similarity index 100% rename from src/032-typescript-only-features/104-auto-assignation-in-classes.problem.ts rename to src/030-classes/104-decorators.problem.ts diff --git a/src/032-typescript-only-features/104-auto-assignation-in-classes.solution.ts b/src/030-classes/104-decorators.solution.ts similarity index 100% rename from src/032-typescript-only-features/104-auto-assignation-in-classes.solution.ts rename to src/030-classes/104-decorators.solution.ts diff --git a/src/032-typescript-only-features/105-enums.problem.ts b/src/030-classes/105-implementing-interfaces.problem.ts similarity index 100% rename from src/032-typescript-only-features/105-enums.problem.ts rename to src/030-classes/105-implementing-interfaces.problem.ts diff --git a/src/032-typescript-only-features/105-enums.solution.ts b/src/030-classes/105-implementing-interfaces.solution.ts similarity index 100% rename from src/032-typescript-only-features/105-enums.solution.ts rename to src/030-classes/105-implementing-interfaces.solution.ts diff --git a/src/032-typescript-only-features/106-const-enums.problem.ts b/src/030-classes/106-typing-this-in-functions.problem.ts similarity index 100% rename from src/032-typescript-only-features/106-const-enums.problem.ts rename to src/030-classes/106-typing-this-in-functions.problem.ts diff --git a/src/032-typescript-only-features/106-const-enums.solution.ts b/src/030-classes/106-typing-this-in-functions.solution.ts similarity index 100% rename from src/032-typescript-only-features/106-const-enums.solution.ts rename to src/030-classes/106-typing-this-in-functions.solution.ts diff --git a/src/032-typescript-only-features/107-namespaces.problem.ts b/src/030-classes/107-can-you-type-this-in-functions.problem.ts similarity index 100% rename from src/032-typescript-only-features/107-namespaces.problem.ts rename to src/030-classes/107-can-you-type-this-in-functions.problem.ts diff --git a/src/032-typescript-only-features/107-namespaces.solution.ts b/src/030-classes/107-can-you-type-this-in-functions.solution.ts similarity index 100% rename from src/032-typescript-only-features/107-namespaces.solution.ts rename to src/030-classes/107-can-you-type-this-in-functions.solution.ts diff --git a/src/032-typescript-only-features/108-namespaces-can-be-used-as-types-or-values.problem.ts b/src/032-typescript-only-features/108-auto-assignation-in-classes.problem.ts similarity index 100% rename from src/032-typescript-only-features/108-namespaces-can-be-used-as-types-or-values.problem.ts rename to src/032-typescript-only-features/108-auto-assignation-in-classes.problem.ts diff --git a/src/032-typescript-only-features/108-namespaces-can-be-used-as-types-or-values.solution.ts b/src/032-typescript-only-features/108-auto-assignation-in-classes.solution.ts similarity index 100% rename from src/032-typescript-only-features/108-namespaces-can-be-used-as-types-or-values.solution.ts rename to src/032-typescript-only-features/108-auto-assignation-in-classes.solution.ts diff --git a/src/032-typescript-only-features/109-namespaces-can-declaration-merge.problem.ts b/src/032-typescript-only-features/109-enums.problem.ts similarity index 100% rename from src/032-typescript-only-features/109-namespaces-can-declaration-merge.problem.ts rename to src/032-typescript-only-features/109-enums.problem.ts diff --git a/src/032-typescript-only-features/109-namespaces-can-declaration-merge.solution.ts b/src/032-typescript-only-features/109-enums.solution.ts similarity index 100% rename from src/032-typescript-only-features/109-namespaces-can-declaration-merge.solution.ts rename to src/032-typescript-only-features/109-enums.solution.ts diff --git a/src/032-typescript-only-features/110-interfaces-within-namespaces-can-declaration-merge.problem.ts b/src/032-typescript-only-features/110-const-enums.problem.ts similarity index 100% rename from src/032-typescript-only-features/110-interfaces-within-namespaces-can-declaration-merge.problem.ts rename to src/032-typescript-only-features/110-const-enums.problem.ts diff --git a/src/032-typescript-only-features/110-interfaces-within-namespaces-can-declaration-merge.solution.ts b/src/032-typescript-only-features/110-const-enums.solution.ts similarity index 100% rename from src/032-typescript-only-features/110-interfaces-within-namespaces-can-declaration-merge.solution.ts rename to src/032-typescript-only-features/110-const-enums.solution.ts diff --git a/src/032-typescript-only-features/111-should-you-use-namespaces.problem.ts b/src/032-typescript-only-features/111-namespaces.problem.ts similarity index 100% rename from src/032-typescript-only-features/111-should-you-use-namespaces.problem.ts rename to src/032-typescript-only-features/111-namespaces.problem.ts diff --git a/src/032-typescript-only-features/111-should-you-use-namespaces.solution.ts b/src/032-typescript-only-features/111-namespaces.solution.ts similarity index 100% rename from src/032-typescript-only-features/111-should-you-use-namespaces.solution.ts rename to src/032-typescript-only-features/111-namespaces.solution.ts diff --git a/src/035-understanding-the-compiler/112-any.problem.ts b/src/032-typescript-only-features/112-namespaces-can-be-used-as-types-or-values.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/112-any.problem.ts rename to src/032-typescript-only-features/112-namespaces-can-be-used-as-types-or-values.problem.ts diff --git a/src/035-understanding-the-compiler/112-any.solution.ts b/src/032-typescript-only-features/112-namespaces-can-be-used-as-types-or-values.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/112-any.solution.ts rename to src/032-typescript-only-features/112-namespaces-can-be-used-as-types-or-values.solution.ts diff --git a/src/035-understanding-the-compiler/113-global-typings-use-any.problem.ts b/src/032-typescript-only-features/113-namespaces-can-declaration-merge.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/113-global-typings-use-any.problem.ts rename to src/032-typescript-only-features/113-namespaces-can-declaration-merge.problem.ts diff --git a/src/035-understanding-the-compiler/113-global-typings-use-any.solution.ts b/src/032-typescript-only-features/113-namespaces-can-declaration-merge.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/113-global-typings-use-any.solution.ts rename to src/032-typescript-only-features/113-namespaces-can-declaration-merge.solution.ts diff --git a/src/035-understanding-the-compiler/114-as-and-as-any.problem.ts b/src/032-typescript-only-features/114-interfaces-within-namespaces-can-declaration-merge.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/114-as-and-as-any.problem.ts rename to src/032-typescript-only-features/114-interfaces-within-namespaces-can-declaration-merge.problem.ts diff --git a/src/035-understanding-the-compiler/114-as-and-as-any.solution.ts b/src/032-typescript-only-features/114-interfaces-within-namespaces-can-declaration-merge.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/114-as-and-as-any.solution.ts rename to src/032-typescript-only-features/114-interfaces-within-namespaces-can-declaration-merge.solution.ts diff --git a/src/035-understanding-the-compiler/115-limits-of-as.problem.ts b/src/032-typescript-only-features/115-should-you-use-namespaces.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/115-limits-of-as.problem.ts rename to src/032-typescript-only-features/115-should-you-use-namespaces.problem.ts diff --git a/src/035-understanding-the-compiler/115-limits-of-as.solution.ts b/src/032-typescript-only-features/115-should-you-use-namespaces.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/115-limits-of-as.solution.ts rename to src/032-typescript-only-features/115-should-you-use-namespaces.solution.ts diff --git a/src/035-understanding-the-compiler/116-satisfies.problem.ts b/src/035-understanding-the-compiler/116-any.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/116-satisfies.problem.ts rename to src/035-understanding-the-compiler/116-any.problem.ts diff --git a/src/035-understanding-the-compiler/116-satisfies.solution.ts b/src/035-understanding-the-compiler/116-any.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/116-satisfies.solution.ts rename to src/035-understanding-the-compiler/116-any.solution.ts diff --git a/src/035-understanding-the-compiler/117-annotating-errors-a-function-throws.problem.ts b/src/035-understanding-the-compiler/117-global-typings-use-any.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/117-annotating-errors-a-function-throws.problem.ts rename to src/035-understanding-the-compiler/117-global-typings-use-any.problem.ts diff --git a/src/035-understanding-the-compiler/117-annotating-errors-a-function-throws.solution.ts b/src/035-understanding-the-compiler/117-global-typings-use-any.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/117-annotating-errors-a-function-throws.solution.ts rename to src/035-understanding-the-compiler/117-global-typings-use-any.solution.ts diff --git a/src/035-understanding-the-compiler/118-excess-properties-warnings.problem.ts b/src/035-understanding-the-compiler/118-as-and-as-any.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/118-excess-properties-warnings.problem.ts rename to src/035-understanding-the-compiler/118-as-and-as-any.problem.ts diff --git a/src/035-understanding-the-compiler/118-excess-properties-warnings.solution.ts b/src/035-understanding-the-compiler/118-as-and-as-any.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/118-excess-properties-warnings.solution.ts rename to src/035-understanding-the-compiler/118-as-and-as-any.solution.ts diff --git a/src/035-understanding-the-compiler/119-object-keys-and-object-entries.problem.ts b/src/035-understanding-the-compiler/119-limits-of-as.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/119-object-keys-and-object-entries.problem.ts rename to src/035-understanding-the-compiler/119-limits-of-as.problem.ts diff --git a/src/035-understanding-the-compiler/119-object-keys-and-object-entries.solution.ts b/src/035-understanding-the-compiler/119-limits-of-as.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/119-object-keys-and-object-entries.solution.ts rename to src/035-understanding-the-compiler/119-limits-of-as.solution.ts diff --git a/src/035-understanding-the-compiler/120-structural-vs-nominal-typing.problem.ts b/src/035-understanding-the-compiler/120-ts-ignore.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/120-structural-vs-nominal-typing.problem.ts rename to src/035-understanding-the-compiler/120-ts-ignore.problem.ts diff --git a/src/035-understanding-the-compiler/120-structural-vs-nominal-typing.solution.ts b/src/035-understanding-the-compiler/120-ts-ignore.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/120-structural-vs-nominal-typing.solution.ts rename to src/035-understanding-the-compiler/120-ts-ignore.solution.ts diff --git a/src/035-understanding-the-compiler/121-how-enums-break-structural-typing.problem.ts b/src/035-understanding-the-compiler/121-ts-expect-error.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/121-how-enums-break-structural-typing.problem.ts rename to src/035-understanding-the-compiler/121-ts-expect-error.problem.ts diff --git a/src/035-understanding-the-compiler/121-how-enums-break-structural-typing.solution.ts b/src/035-understanding-the-compiler/121-ts-expect-error.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/121-how-enums-break-structural-typing.solution.ts rename to src/035-understanding-the-compiler/121-ts-expect-error.solution.ts diff --git a/src/035-understanding-the-compiler/122-unions-of-functions.problem.ts b/src/035-understanding-the-compiler/122-satisfies.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/122-unions-of-functions.problem.ts rename to src/035-understanding-the-compiler/122-satisfies.problem.ts diff --git a/src/035-understanding-the-compiler/122-unions-of-functions.solution.ts b/src/035-understanding-the-compiler/122-satisfies.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/122-unions-of-functions.solution.ts rename to src/035-understanding-the-compiler/122-satisfies.solution.ts diff --git a/src/035-understanding-the-compiler/123-empty-object-type.problem.ts b/src/035-understanding-the-compiler/123-satisfies-with-as-const.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/123-empty-object-type.problem.ts rename to src/035-understanding-the-compiler/123-satisfies-with-as-const.problem.ts diff --git a/src/035-understanding-the-compiler/123-empty-object-type.solution.ts b/src/035-understanding-the-compiler/123-satisfies-with-as-const.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/123-empty-object-type.solution.ts rename to src/035-understanding-the-compiler/123-satisfies-with-as-const.solution.ts diff --git a/src/040-deriving-types-from-values/124-typeof-keyword.problem.ts b/src/035-understanding-the-compiler/124-annotating-errors-a-function-throws.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/124-typeof-keyword.problem.ts rename to src/035-understanding-the-compiler/124-annotating-errors-a-function-throws.problem.ts diff --git a/src/040-deriving-types-from-values/124-typeof-keyword.solution.ts b/src/035-understanding-the-compiler/124-annotating-errors-a-function-throws.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/124-typeof-keyword.solution.ts rename to src/035-understanding-the-compiler/124-annotating-errors-a-function-throws.solution.ts diff --git a/src/040-deriving-types-from-values/125-create-runtime-values-from-types.problem.ts b/src/035-understanding-the-compiler/125-excess-properties-warnings.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/125-create-runtime-values-from-types.problem.ts rename to src/035-understanding-the-compiler/125-excess-properties-warnings.problem.ts diff --git a/src/040-deriving-types-from-values/125-create-runtime-values-from-types.solution.ts b/src/035-understanding-the-compiler/125-excess-properties-warnings.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/125-create-runtime-values-from-types.solution.ts rename to src/035-understanding-the-compiler/125-excess-properties-warnings.solution.ts diff --git a/src/040-deriving-types-from-values/126-classes-and-enums-cross-value-and-type-world.problem.ts b/src/035-understanding-the-compiler/126-object-keys-and-object-entries.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/126-classes-and-enums-cross-value-and-type-world.problem.ts rename to src/035-understanding-the-compiler/126-object-keys-and-object-entries.problem.ts diff --git a/src/040-deriving-types-from-values/126-classes-and-enums-cross-value-and-type-world.solution.ts b/src/035-understanding-the-compiler/126-object-keys-and-object-entries.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/126-classes-and-enums-cross-value-and-type-world.solution.ts rename to src/035-understanding-the-compiler/126-object-keys-and-object-entries.solution.ts diff --git a/src/040-deriving-types-from-values/127-this-crosses-value-and-type-world.problem.ts b/src/035-understanding-the-compiler/127-structural-vs-nominal-typing.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/127-this-crosses-value-and-type-world.problem.ts rename to src/035-understanding-the-compiler/127-structural-vs-nominal-typing.problem.ts diff --git a/src/040-deriving-types-from-values/127-this-crosses-value-and-type-world.solution.ts b/src/035-understanding-the-compiler/127-structural-vs-nominal-typing.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/127-this-crosses-value-and-type-world.solution.ts rename to src/035-understanding-the-compiler/127-structural-vs-nominal-typing.solution.ts diff --git a/src/040-deriving-types-from-values/128-return-type.problem.ts b/src/035-understanding-the-compiler/128-how-enums-break-structural-typing.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/128-return-type.problem.ts rename to src/035-understanding-the-compiler/128-how-enums-break-structural-typing.problem.ts diff --git a/src/040-deriving-types-from-values/128-return-type.solution.ts b/src/035-understanding-the-compiler/128-how-enums-break-structural-typing.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/128-return-type.solution.ts rename to src/035-understanding-the-compiler/128-how-enums-break-structural-typing.solution.ts diff --git a/src/040-deriving-types-from-values/129-parameters-type-helper.problem.ts b/src/035-understanding-the-compiler/129-unions-of-functions.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/129-parameters-type-helper.problem.ts rename to src/035-understanding-the-compiler/129-unions-of-functions.problem.ts diff --git a/src/040-deriving-types-from-values/129-parameters-type-helper.solution.ts b/src/035-understanding-the-compiler/129-unions-of-functions.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/129-parameters-type-helper.solution.ts rename to src/035-understanding-the-compiler/129-unions-of-functions.solution.ts diff --git a/src/040-deriving-types-from-values/130-keyof.problem.ts b/src/035-understanding-the-compiler/130-empty-object-type.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/130-keyof.problem.ts rename to src/035-understanding-the-compiler/130-empty-object-type.problem.ts diff --git a/src/040-deriving-types-from-values/130-keyof.solution.ts b/src/035-understanding-the-compiler/130-empty-object-type.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/130-keyof.solution.ts rename to src/035-understanding-the-compiler/130-empty-object-type.solution.ts diff --git a/src/040-deriving-types-from-values/131-indexed-access-types.problem.ts b/src/040-deriving-types-from-values/131-typeof-keyword.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/131-indexed-access-types.problem.ts rename to src/040-deriving-types-from-values/131-typeof-keyword.problem.ts diff --git a/src/040-deriving-types-from-values/131-indexed-access-types.solution.ts b/src/040-deriving-types-from-values/131-typeof-keyword.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/131-indexed-access-types.solution.ts rename to src/040-deriving-types-from-values/131-typeof-keyword.solution.ts diff --git a/src/040-deriving-types-from-values/132-pass-unions-to-indexed-access-types.problem.ts b/src/040-deriving-types-from-values/132-create-runtime-values-from-types.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/132-pass-unions-to-indexed-access-types.problem.ts rename to src/040-deriving-types-from-values/132-create-runtime-values-from-types.problem.ts diff --git a/src/040-deriving-types-from-values/132-pass-unions-to-indexed-access-types.solution.ts b/src/040-deriving-types-from-values/132-create-runtime-values-from-types.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/132-pass-unions-to-indexed-access-types.solution.ts rename to src/040-deriving-types-from-values/132-create-runtime-values-from-types.solution.ts diff --git a/src/040-deriving-types-from-values/133-pass-keyof-into-an-indexed-access-type.problem.ts b/src/040-deriving-types-from-values/133-classes-and-enums-cross-value-and-type-world.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/133-pass-keyof-into-an-indexed-access-type.problem.ts rename to src/040-deriving-types-from-values/133-classes-and-enums-cross-value-and-type-world.problem.ts diff --git a/src/040-deriving-types-from-values/133-pass-keyof-into-an-indexed-access-type.solution.ts b/src/040-deriving-types-from-values/133-classes-and-enums-cross-value-and-type-world.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/133-pass-keyof-into-an-indexed-access-type.solution.ts rename to src/040-deriving-types-from-values/133-classes-and-enums-cross-value-and-type-world.solution.ts diff --git a/src/040-deriving-types-from-values/134-create-an-enum-from-as-const-object.problem.ts b/src/040-deriving-types-from-values/134-this-crosses-value-and-type-world.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/134-create-an-enum-from-as-const-object.problem.ts rename to src/040-deriving-types-from-values/134-this-crosses-value-and-type-world.problem.ts diff --git a/src/040-deriving-types-from-values/134-create-an-enum-from-as-const-object.solution.ts b/src/040-deriving-types-from-values/134-this-crosses-value-and-type-world.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/134-create-an-enum-from-as-const-object.solution.ts rename to src/040-deriving-types-from-values/134-this-crosses-value-and-type-world.solution.ts diff --git a/src/040-deriving-types-from-values/135-create-a-union-from-an-as-const-array.problem.ts b/src/040-deriving-types-from-values/135-return-type.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/135-create-a-union-from-an-as-const-array.problem.ts rename to src/040-deriving-types-from-values/135-return-type.problem.ts diff --git a/src/040-deriving-types-from-values/135-create-a-union-from-an-as-const-array.solution.ts b/src/040-deriving-types-from-values/135-return-type.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/135-create-a-union-from-an-as-const-array.solution.ts rename to src/040-deriving-types-from-values/135-return-type.solution.ts diff --git a/src/040-deriving-types-from-values/136-should-i-use-enums-or-as-const.problem.ts b/src/040-deriving-types-from-values/136-parameters-type-helper.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/136-should-i-use-enums-or-as-const.problem.ts rename to src/040-deriving-types-from-values/136-parameters-type-helper.problem.ts diff --git a/src/040-deriving-types-from-values/136-should-i-use-enums-or-as-const.solution.ts b/src/040-deriving-types-from-values/136-parameters-type-helper.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/136-should-i-use-enums-or-as-const.solution.ts rename to src/040-deriving-types-from-values/136-parameters-type-helper.solution.ts diff --git a/src/040-deriving-types-from-values/137-using-numeric-comparators-on-enums.problem.ts b/src/040-deriving-types-from-values/137-keyof.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/137-using-numeric-comparators-on-enums.problem.ts rename to src/040-deriving-types-from-values/137-keyof.problem.ts diff --git a/src/040-deriving-types-from-values/137-using-numeric-comparators-on-enums.solution.ts b/src/040-deriving-types-from-values/137-keyof.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/137-using-numeric-comparators-on-enums.solution.ts rename to src/040-deriving-types-from-values/137-keyof.solution.ts diff --git a/src/060-modules-and-namespaces/138-module-or-script.problem.ts b/src/040-deriving-types-from-values/138-indexed-access-types.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/138-module-or-script.problem.ts rename to src/040-deriving-types-from-values/138-indexed-access-types.problem.ts diff --git a/src/060-modules-and-namespaces/138-module-or-script.solution.ts b/src/040-deriving-types-from-values/138-indexed-access-types.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/138-module-or-script.solution.ts rename to src/040-deriving-types-from-values/138-indexed-access-types.solution.ts diff --git a/src/060-modules-and-namespaces/139-module-detection-force.problem.ts b/src/040-deriving-types-from-values/139-pass-unions-to-indexed-access-types.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/139-module-detection-force.problem.ts rename to src/040-deriving-types-from-values/139-pass-unions-to-indexed-access-types.problem.ts diff --git a/src/060-modules-and-namespaces/139-module-detection-force.solution.ts b/src/040-deriving-types-from-values/139-pass-unions-to-indexed-access-types.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/139-module-detection-force.solution.ts rename to src/040-deriving-types-from-values/139-pass-unions-to-indexed-access-types.solution.ts diff --git a/src/060-modules-and-namespaces/140-isolated-modules.problem.ts b/src/040-deriving-types-from-values/140-pass-keyof-into-an-indexed-access-type.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/140-isolated-modules.problem.ts rename to src/040-deriving-types-from-values/140-pass-keyof-into-an-indexed-access-type.problem.ts diff --git a/src/060-modules-and-namespaces/140-isolated-modules.solution.ts b/src/040-deriving-types-from-values/140-pass-keyof-into-an-indexed-access-type.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/140-isolated-modules.solution.ts rename to src/040-deriving-types-from-values/140-pass-keyof-into-an-indexed-access-type.solution.ts diff --git a/src/060-modules-and-namespaces/141-cjs-vs-esm.problem.ts b/src/040-deriving-types-from-values/141-create-an-enum-from-as-const-object.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/141-cjs-vs-esm.problem.ts rename to src/040-deriving-types-from-values/141-create-an-enum-from-as-const-object.problem.ts diff --git a/src/060-modules-and-namespaces/141-cjs-vs-esm.solution.ts b/src/040-deriving-types-from-values/141-create-an-enum-from-as-const-object.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/141-cjs-vs-esm.solution.ts rename to src/040-deriving-types-from-values/141-create-an-enum-from-as-const-object.solution.ts diff --git a/src/060-modules-and-namespaces/142-module-resolution-bundler-or-nodenext.problem.ts b/src/040-deriving-types-from-values/142-create-a-union-from-an-as-const-array.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/142-module-resolution-bundler-or-nodenext.problem.ts rename to src/040-deriving-types-from-values/142-create-a-union-from-an-as-const-array.problem.ts diff --git a/src/060-modules-and-namespaces/142-module-resolution-bundler-or-nodenext.solution.ts b/src/040-deriving-types-from-values/142-create-a-union-from-an-as-const-array.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/142-module-resolution-bundler-or-nodenext.solution.ts rename to src/040-deriving-types-from-values/142-create-a-union-from-an-as-const-array.solution.ts diff --git a/src/060-modules-and-namespaces/143-declaration-files.problem.ts b/src/040-deriving-types-from-values/143-should-i-use-enums-or-as-const.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/143-declaration-files.problem.ts rename to src/040-deriving-types-from-values/143-should-i-use-enums-or-as-const.problem.ts diff --git a/src/060-modules-and-namespaces/143-declaration-files.solution.ts b/src/040-deriving-types-from-values/143-should-i-use-enums-or-as-const.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/143-declaration-files.solution.ts rename to src/040-deriving-types-from-values/143-should-i-use-enums-or-as-const.solution.ts diff --git a/src/060-modules-and-namespaces/144-skip-lib-check-true.problem.ts b/src/040-deriving-types-from-values/144-using-numeric-comparators-on-enums.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/144-skip-lib-check-true.problem.ts rename to src/040-deriving-types-from-values/144-using-numeric-comparators-on-enums.problem.ts diff --git a/src/060-modules-and-namespaces/144-skip-lib-check-true.solution.ts b/src/040-deriving-types-from-values/144-using-numeric-comparators-on-enums.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/144-skip-lib-check-true.solution.ts rename to src/040-deriving-types-from-values/144-using-numeric-comparators-on-enums.solution.ts diff --git a/src/060-modules-and-namespaces/145-declaration-files-can-be-modules-or-scripts.problem.ts b/src/060-modules-and-namespaces/145-module-or-script.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/145-declaration-files-can-be-modules-or-scripts.problem.ts rename to src/060-modules-and-namespaces/145-module-or-script.problem.ts diff --git a/src/060-modules-and-namespaces/145-declaration-files-can-be-modules-or-scripts.solution.ts b/src/060-modules-and-namespaces/145-module-or-script.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/145-declaration-files-can-be-modules-or-scripts.solution.ts rename to src/060-modules-and-namespaces/145-module-or-script.solution.ts diff --git a/src/060-modules-and-namespaces/146-declaration-files-can-be-used-to-type-js-files.problem.ts b/src/060-modules-and-namespaces/146-module-detection-force.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/146-declaration-files-can-be-used-to-type-js-files.problem.ts rename to src/060-modules-and-namespaces/146-module-detection-force.problem.ts diff --git a/src/060-modules-and-namespaces/146-declaration-files-can-be-used-to-type-js-files.solution.ts b/src/060-modules-and-namespaces/146-module-detection-force.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/146-declaration-files-can-be-used-to-type-js-files.solution.ts rename to src/060-modules-and-namespaces/146-module-detection-force.solution.ts diff --git a/src/060-modules-and-namespaces/147-should-you-use-declaration-files.problem.ts b/src/060-modules-and-namespaces/147-isolated-modules.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/147-should-you-use-declaration-files.problem.ts rename to src/060-modules-and-namespaces/147-isolated-modules.problem.ts diff --git a/src/060-modules-and-namespaces/147-should-you-use-declaration-files.solution.ts b/src/060-modules-and-namespaces/147-isolated-modules.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/147-should-you-use-declaration-files.solution.ts rename to src/060-modules-and-namespaces/147-isolated-modules.solution.ts diff --git a/src/060-modules-and-namespaces/148-resolve-json-module.problem.ts b/src/060-modules-and-namespaces/148-cjs-vs-esm.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/148-resolve-json-module.problem.ts rename to src/060-modules-and-namespaces/148-cjs-vs-esm.problem.ts diff --git a/src/060-modules-and-namespaces/148-resolve-json-module.solution.ts b/src/060-modules-and-namespaces/148-cjs-vs-esm.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/148-resolve-json-module.solution.ts rename to src/060-modules-and-namespaces/148-cjs-vs-esm.solution.ts diff --git a/src/060-modules-and-namespaces/149-json-d-ts-files.problem.ts b/src/060-modules-and-namespaces/149-module-resolution-bundler-or-nodenext.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/149-json-d-ts-files.problem.ts rename to src/060-modules-and-namespaces/149-module-resolution-bundler-or-nodenext.problem.ts diff --git a/src/060-modules-and-namespaces/149-json-d-ts-files.solution.ts b/src/060-modules-and-namespaces/149-module-resolution-bundler-or-nodenext.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/149-json-d-ts-files.solution.ts rename to src/060-modules-and-namespaces/149-module-resolution-bundler-or-nodenext.solution.ts diff --git a/src/062-the-global-namespace/150-ambient-context-and-declare-const.problem.ts b/src/060-modules-and-namespaces/150-declaration-files.problem.ts similarity index 100% rename from src/062-the-global-namespace/150-ambient-context-and-declare-const.problem.ts rename to src/060-modules-and-namespaces/150-declaration-files.problem.ts diff --git a/src/062-the-global-namespace/150-ambient-context-and-declare-const.solution.ts b/src/060-modules-and-namespaces/150-declaration-files.solution.ts similarity index 100% rename from src/062-the-global-namespace/150-ambient-context-and-declare-const.solution.ts rename to src/060-modules-and-namespaces/150-declaration-files.solution.ts diff --git a/src/062-the-global-namespace/151-declare-global.problem.ts b/src/060-modules-and-namespaces/151-skip-lib-check-true.problem.ts similarity index 100% rename from src/062-the-global-namespace/151-declare-global.problem.ts rename to src/060-modules-and-namespaces/151-skip-lib-check-true.problem.ts diff --git a/src/062-the-global-namespace/151-declare-global.solution.ts b/src/060-modules-and-namespaces/151-skip-lib-check-true.solution.ts similarity index 100% rename from src/062-the-global-namespace/151-declare-global.solution.ts rename to src/060-modules-and-namespaces/151-skip-lib-check-true.solution.ts diff --git a/src/062-the-global-namespace/152-globals-are-tied-to-a-single-tsconfig.problem.ts b/src/060-modules-and-namespaces/152-declaration-files-can-be-modules-or-scripts.problem.ts similarity index 100% rename from src/062-the-global-namespace/152-globals-are-tied-to-a-single-tsconfig.problem.ts rename to src/060-modules-and-namespaces/152-declaration-files-can-be-modules-or-scripts.problem.ts diff --git a/src/062-the-global-namespace/152-globals-are-tied-to-a-single-tsconfig.solution.ts b/src/060-modules-and-namespaces/152-declaration-files-can-be-modules-or-scripts.solution.ts similarity index 100% rename from src/062-the-global-namespace/152-globals-are-tied-to-a-single-tsconfig.solution.ts rename to src/060-modules-and-namespaces/152-declaration-files-can-be-modules-or-scripts.solution.ts diff --git a/src/062-the-global-namespace/153-declare-global-or-declaration-file.problem.ts b/src/060-modules-and-namespaces/153-declaration-files-can-be-used-to-type-js-files.problem.ts similarity index 100% rename from src/062-the-global-namespace/153-declare-global-or-declaration-file.problem.ts rename to src/060-modules-and-namespaces/153-declaration-files-can-be-used-to-type-js-files.problem.ts diff --git a/src/062-the-global-namespace/153-declare-global-or-declaration-file.solution.ts b/src/060-modules-and-namespaces/153-declaration-files-can-be-used-to-type-js-files.solution.ts similarity index 100% rename from src/062-the-global-namespace/153-declare-global-or-declaration-file.solution.ts rename to src/060-modules-and-namespaces/153-declaration-files-can-be-used-to-type-js-files.solution.ts diff --git a/src/062-the-global-namespace/154-declare-module.problem.ts b/src/060-modules-and-namespaces/154-should-you-use-declaration-files.problem.ts similarity index 100% rename from src/062-the-global-namespace/154-declare-module.problem.ts rename to src/060-modules-and-namespaces/154-should-you-use-declaration-files.problem.ts diff --git a/src/062-the-global-namespace/154-declare-module.solution.ts b/src/060-modules-and-namespaces/154-should-you-use-declaration-files.solution.ts similarity index 100% rename from src/062-the-global-namespace/154-declare-module.solution.ts rename to src/060-modules-and-namespaces/154-should-you-use-declaration-files.solution.ts diff --git a/src/062-the-global-namespace/155-wildcard-in-declare-module.problem.ts b/src/060-modules-and-namespaces/155-resolve-json-module.problem.ts similarity index 100% rename from src/062-the-global-namespace/155-wildcard-in-declare-module.problem.ts rename to src/060-modules-and-namespaces/155-resolve-json-module.problem.ts diff --git a/src/062-the-global-namespace/155-wildcard-in-declare-module.solution.ts b/src/060-modules-and-namespaces/155-resolve-json-module.solution.ts similarity index 100% rename from src/062-the-global-namespace/155-wildcard-in-declare-module.solution.ts rename to src/060-modules-and-namespaces/155-resolve-json-module.solution.ts diff --git a/src/062-the-global-namespace/156-modifying-window.problem.ts b/src/060-modules-and-namespaces/156-json-d-ts-files.problem.ts similarity index 100% rename from src/062-the-global-namespace/156-modifying-window.problem.ts rename to src/060-modules-and-namespaces/156-json-d-ts-files.problem.ts diff --git a/src/062-the-global-namespace/156-modifying-window.solution.ts b/src/060-modules-and-namespaces/156-json-d-ts-files.solution.ts similarity index 100% rename from src/062-the-global-namespace/156-modifying-window.solution.ts rename to src/060-modules-and-namespaces/156-json-d-ts-files.solution.ts diff --git a/src/062-the-global-namespace/157-modifying-globalthis.problem.ts b/src/062-the-global-namespace/157-ambient-context-and-declare-const.problem.ts similarity index 100% rename from src/062-the-global-namespace/157-modifying-globalthis.problem.ts rename to src/062-the-global-namespace/157-ambient-context-and-declare-const.problem.ts diff --git a/src/062-the-global-namespace/157-modifying-globalthis.solution.ts b/src/062-the-global-namespace/157-ambient-context-and-declare-const.solution.ts similarity index 100% rename from src/062-the-global-namespace/157-modifying-globalthis.solution.ts rename to src/062-the-global-namespace/157-ambient-context-and-declare-const.solution.ts diff --git a/src/062-the-global-namespace/158-modifying-process-env.problem.ts b/src/062-the-global-namespace/158-declare-global.problem.ts similarity index 100% rename from src/062-the-global-namespace/158-modifying-process-env.problem.ts rename to src/062-the-global-namespace/158-declare-global.problem.ts diff --git a/src/062-the-global-namespace/158-modifying-process-env.solution.ts b/src/062-the-global-namespace/158-declare-global.solution.ts similarity index 100% rename from src/062-the-global-namespace/158-modifying-process-env.solution.ts rename to src/062-the-global-namespace/158-declare-global.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/159-declare-module-for-overriding-third-party-libraries.problem.ts b/src/062-the-global-namespace/159-globals-are-tied-to-a-single-tsconfig.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/159-declare-module-for-overriding-third-party-libraries.problem.ts rename to src/062-the-global-namespace/159-globals-are-tied-to-a-single-tsconfig.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/159-declare-module-for-overriding-third-party-libraries.solution.ts b/src/062-the-global-namespace/159-globals-are-tied-to-a-single-tsconfig.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/159-declare-module-for-overriding-third-party-libraries.solution.ts rename to src/062-the-global-namespace/159-globals-are-tied-to-a-single-tsconfig.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/160-lib-d-ts.problem.ts b/src/062-the-global-namespace/160-declare-global-or-declaration-file.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/160-lib-d-ts.problem.ts rename to src/062-the-global-namespace/160-declare-global-or-declaration-file.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/160-lib-d-ts.solution.ts b/src/062-the-global-namespace/160-declare-global-or-declaration-file.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/160-lib-d-ts.solution.ts rename to src/062-the-global-namespace/160-declare-global-or-declaration-file.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/161-using-target-to-change-lib-d-ts.problem.ts b/src/062-the-global-namespace/161-declare-module.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/161-using-target-to-change-lib-d-ts.problem.ts rename to src/062-the-global-namespace/161-declare-module.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/161-using-target-to-change-lib-d-ts.solution.ts b/src/062-the-global-namespace/161-declare-module.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/161-using-target-to-change-lib-d-ts.solution.ts rename to src/062-the-global-namespace/161-declare-module.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/162-lib-dom-d-ts.problem.ts b/src/062-the-global-namespace/162-wildcard-in-declare-module.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/162-lib-dom-d-ts.problem.ts rename to src/062-the-global-namespace/162-wildcard-in-declare-module.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/162-lib-dom-d-ts.solution.ts b/src/062-the-global-namespace/162-wildcard-in-declare-module.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/162-lib-dom-d-ts.solution.ts rename to src/062-the-global-namespace/162-wildcard-in-declare-module.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/163-third-party-types.problem.ts b/src/062-the-global-namespace/163-modifying-window.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/163-third-party-types.problem.ts rename to src/062-the-global-namespace/163-modifying-window.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/163-third-party-types.solution.ts b/src/062-the-global-namespace/163-modifying-window.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/163-third-party-types.solution.ts rename to src/062-the-global-namespace/163-modifying-window.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/164-type-roots-in-tsconfig.problem.ts b/src/062-the-global-namespace/164-modifying-globalthis.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/164-type-roots-in-tsconfig.problem.ts rename to src/062-the-global-namespace/164-modifying-globalthis.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/164-type-roots-in-tsconfig.solution.ts b/src/062-the-global-namespace/164-modifying-globalthis.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/164-type-roots-in-tsconfig.solution.ts rename to src/062-the-global-namespace/164-modifying-globalthis.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/165-types-that-ship-with-libraries.problem.ts b/src/062-the-global-namespace/165-modifying-process-env.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/165-types-that-ship-with-libraries.problem.ts rename to src/062-the-global-namespace/165-modifying-process-env.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/165-types-that-ship-with-libraries.solution.ts b/src/062-the-global-namespace/165-modifying-process-env.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/165-types-that-ship-with-libraries.solution.ts rename to src/062-the-global-namespace/165-modifying-process-env.solution.ts diff --git a/src/075-designing-your-types/166-domain-modelling-in-typescript.problem.ts b/src/065-four-spaces-of-typescript-declarations/166-declare-module-for-overriding-third-party-libraries.problem.ts similarity index 100% rename from src/075-designing-your-types/166-domain-modelling-in-typescript.problem.ts rename to src/065-four-spaces-of-typescript-declarations/166-declare-module-for-overriding-third-party-libraries.problem.ts diff --git a/src/075-designing-your-types/166-domain-modelling-in-typescript.solution.ts b/src/065-four-spaces-of-typescript-declarations/166-declare-module-for-overriding-third-party-libraries.solution.ts similarity index 100% rename from src/075-designing-your-types/166-domain-modelling-in-typescript.solution.ts rename to src/065-four-spaces-of-typescript-declarations/166-declare-module-for-overriding-third-party-libraries.solution.ts diff --git a/src/075-designing-your-types/167-intro-to-helper-types.problem.ts b/src/065-four-spaces-of-typescript-declarations/167-lib-d-ts.problem.ts similarity index 100% rename from src/075-designing-your-types/167-intro-to-helper-types.problem.ts rename to src/065-four-spaces-of-typescript-declarations/167-lib-d-ts.problem.ts diff --git a/src/075-designing-your-types/167-intro-to-helper-types.solution.ts b/src/065-four-spaces-of-typescript-declarations/167-lib-d-ts.solution.ts similarity index 100% rename from src/075-designing-your-types/167-intro-to-helper-types.solution.ts rename to src/065-four-spaces-of-typescript-declarations/167-lib-d-ts.solution.ts diff --git a/src/075-designing-your-types/168-multiple-type-parameters.problem.ts b/src/065-four-spaces-of-typescript-declarations/168-using-target-to-change-lib-d-ts.problem.ts similarity index 100% rename from src/075-designing-your-types/168-multiple-type-parameters.problem.ts rename to src/065-four-spaces-of-typescript-declarations/168-using-target-to-change-lib-d-ts.problem.ts diff --git a/src/075-designing-your-types/168-multiple-type-parameters.solution.ts b/src/065-four-spaces-of-typescript-declarations/168-using-target-to-change-lib-d-ts.solution.ts similarity index 100% rename from src/075-designing-your-types/168-multiple-type-parameters.solution.ts rename to src/065-four-spaces-of-typescript-declarations/168-using-target-to-change-lib-d-ts.solution.ts diff --git a/src/075-designing-your-types/169-default-type-parameters.problem.ts b/src/065-four-spaces-of-typescript-declarations/169-lib-dom-d-ts.problem.ts similarity index 100% rename from src/075-designing-your-types/169-default-type-parameters.problem.ts rename to src/065-four-spaces-of-typescript-declarations/169-lib-dom-d-ts.problem.ts diff --git a/src/075-designing-your-types/169-default-type-parameters.solution.ts b/src/065-four-spaces-of-typescript-declarations/169-lib-dom-d-ts.solution.ts similarity index 100% rename from src/075-designing-your-types/169-default-type-parameters.solution.ts rename to src/065-four-spaces-of-typescript-declarations/169-lib-dom-d-ts.solution.ts diff --git a/src/075-designing-your-types/170-type-helper-constraints.problem.ts b/src/065-four-spaces-of-typescript-declarations/170-third-party-types.problem.ts similarity index 100% rename from src/075-designing-your-types/170-type-helper-constraints.problem.ts rename to src/065-four-spaces-of-typescript-declarations/170-third-party-types.problem.ts diff --git a/src/075-designing-your-types/170-type-helper-constraints.solution.ts b/src/065-four-spaces-of-typescript-declarations/170-third-party-types.solution.ts similarity index 100% rename from src/075-designing-your-types/170-type-helper-constraints.solution.ts rename to src/065-four-spaces-of-typescript-declarations/170-third-party-types.solution.ts diff --git a/src/075-designing-your-types/171-tighter-version-of-omit.problem.ts b/src/065-four-spaces-of-typescript-declarations/171-type-roots-in-tsconfig.problem.ts similarity index 100% rename from src/075-designing-your-types/171-tighter-version-of-omit.problem.ts rename to src/065-four-spaces-of-typescript-declarations/171-type-roots-in-tsconfig.problem.ts diff --git a/src/075-designing-your-types/171-tighter-version-of-omit.solution.ts b/src/065-four-spaces-of-typescript-declarations/171-type-roots-in-tsconfig.solution.ts similarity index 100% rename from src/075-designing-your-types/171-tighter-version-of-omit.solution.ts rename to src/065-four-spaces-of-typescript-declarations/171-type-roots-in-tsconfig.solution.ts diff --git a/src/075-designing-your-types/172-template-literal-types.problem.ts b/src/065-four-spaces-of-typescript-declarations/172-types-that-ship-with-libraries.problem.ts similarity index 100% rename from src/075-designing-your-types/172-template-literal-types.problem.ts rename to src/065-four-spaces-of-typescript-declarations/172-types-that-ship-with-libraries.problem.ts diff --git a/src/075-designing-your-types/172-template-literal-types.solution.ts b/src/065-four-spaces-of-typescript-declarations/172-types-that-ship-with-libraries.solution.ts similarity index 100% rename from src/075-designing-your-types/172-template-literal-types.solution.ts rename to src/065-four-spaces-of-typescript-declarations/172-types-that-ship-with-libraries.solution.ts diff --git a/src/075-designing-your-types/173-passing-unions-to-template-literal-types.problem.ts b/src/075-designing-your-types/173-domain-modelling-in-typescript.problem.ts similarity index 100% rename from src/075-designing-your-types/173-passing-unions-to-template-literal-types.problem.ts rename to src/075-designing-your-types/173-domain-modelling-in-typescript.problem.ts diff --git a/src/075-designing-your-types/173-passing-unions-to-template-literal-types.solution.ts b/src/075-designing-your-types/173-domain-modelling-in-typescript.solution.ts similarity index 100% rename from src/075-designing-your-types/173-passing-unions-to-template-literal-types.solution.ts rename to src/075-designing-your-types/173-domain-modelling-in-typescript.solution.ts diff --git a/src/080-configuring-typescript/174-introduction-to-tsconfig.problem.ts b/src/075-designing-your-types/174-intro-to-helper-types.problem.ts similarity index 100% rename from src/080-configuring-typescript/174-introduction-to-tsconfig.problem.ts rename to src/075-designing-your-types/174-intro-to-helper-types.problem.ts diff --git a/src/080-configuring-typescript/174-introduction-to-tsconfig.solution.ts b/src/075-designing-your-types/174-intro-to-helper-types.solution.ts similarity index 100% rename from src/080-configuring-typescript/174-introduction-to-tsconfig.solution.ts rename to src/075-designing-your-types/174-intro-to-helper-types.solution.ts diff --git a/src/080-configuring-typescript/175-tsconfig-bases.problem.ts b/src/075-designing-your-types/175-multiple-type-parameters.problem.ts similarity index 100% rename from src/080-configuring-typescript/175-tsconfig-bases.problem.ts rename to src/075-designing-your-types/175-multiple-type-parameters.problem.ts diff --git a/src/080-configuring-typescript/175-tsconfig-bases.solution.ts b/src/075-designing-your-types/175-multiple-type-parameters.solution.ts similarity index 100% rename from src/080-configuring-typescript/175-tsconfig-bases.solution.ts rename to src/075-designing-your-types/175-multiple-type-parameters.solution.ts diff --git a/src/080-configuring-typescript/176-multiple-tsconfig-json-files.problem.ts b/src/075-designing-your-types/176-default-type-parameters.problem.ts similarity index 100% rename from src/080-configuring-typescript/176-multiple-tsconfig-json-files.problem.ts rename to src/075-designing-your-types/176-default-type-parameters.problem.ts diff --git a/src/080-configuring-typescript/176-multiple-tsconfig-json-files.solution.ts b/src/075-designing-your-types/176-default-type-parameters.solution.ts similarity index 100% rename from src/080-configuring-typescript/176-multiple-tsconfig-json-files.solution.ts rename to src/075-designing-your-types/176-default-type-parameters.solution.ts diff --git a/src/080-configuring-typescript/177-extending-from-other-tsconfig-json-files.problem.ts b/src/075-designing-your-types/177-type-helper-constraints.problem.ts similarity index 100% rename from src/080-configuring-typescript/177-extending-from-other-tsconfig-json-files.problem.ts rename to src/075-designing-your-types/177-type-helper-constraints.problem.ts diff --git a/src/080-configuring-typescript/177-extending-from-other-tsconfig-json-files.solution.ts b/src/075-designing-your-types/177-type-helper-constraints.solution.ts similarity index 100% rename from src/080-configuring-typescript/177-extending-from-other-tsconfig-json-files.solution.ts rename to src/075-designing-your-types/177-type-helper-constraints.solution.ts diff --git a/src/080-configuring-typescript/178-project-references.problem.ts b/src/075-designing-your-types/178-tighter-version-of-omit.problem.ts similarity index 100% rename from src/080-configuring-typescript/178-project-references.problem.ts rename to src/075-designing-your-types/178-tighter-version-of-omit.problem.ts diff --git a/src/080-configuring-typescript/178-project-references.solution.ts b/src/075-designing-your-types/178-tighter-version-of-omit.solution.ts similarity index 100% rename from src/080-configuring-typescript/178-project-references.solution.ts rename to src/075-designing-your-types/178-tighter-version-of-omit.solution.ts diff --git a/src/080-configuring-typescript/179-jsx.problem.ts b/src/075-designing-your-types/179-template-literal-types.problem.ts similarity index 100% rename from src/080-configuring-typescript/179-jsx.problem.ts rename to src/075-designing-your-types/179-template-literal-types.problem.ts diff --git a/src/080-configuring-typescript/179-jsx.solution.ts b/src/075-designing-your-types/179-template-literal-types.solution.ts similarity index 100% rename from src/080-configuring-typescript/179-jsx.solution.ts rename to src/075-designing-your-types/179-template-literal-types.solution.ts diff --git a/src/080-configuring-typescript/180-rules-that-make-up-strict-mode.problem.ts b/src/075-designing-your-types/180-passing-unions-to-template-literal-types.problem.ts similarity index 100% rename from src/080-configuring-typescript/180-rules-that-make-up-strict-mode.problem.ts rename to src/075-designing-your-types/180-passing-unions-to-template-literal-types.problem.ts diff --git a/src/080-configuring-typescript/180-rules-that-make-up-strict-mode.solution.ts b/src/075-designing-your-types/180-passing-unions-to-template-literal-types.solution.ts similarity index 100% rename from src/080-configuring-typescript/180-rules-that-make-up-strict-mode.solution.ts rename to src/075-designing-your-types/180-passing-unions-to-template-literal-types.solution.ts diff --git a/src/080-configuring-typescript/181-no-unchecked-indexed-access.problem.ts b/src/075-designing-your-types/181-mapped-types.problem.ts similarity index 100% rename from src/080-configuring-typescript/181-no-unchecked-indexed-access.problem.ts rename to src/075-designing-your-types/181-mapped-types.problem.ts diff --git a/src/080-configuring-typescript/181-no-unchecked-indexed-access.solution.ts b/src/075-designing-your-types/181-mapped-types.solution.ts similarity index 100% rename from src/080-configuring-typescript/181-no-unchecked-indexed-access.solution.ts rename to src/075-designing-your-types/181-mapped-types.solution.ts diff --git a/src/080-configuring-typescript/182-creating-declaration-files-and-declaration-maps.problem.ts b/src/075-designing-your-types/182-as-in-mapped-types.problem.ts similarity index 100% rename from src/080-configuring-typescript/182-creating-declaration-files-and-declaration-maps.problem.ts rename to src/075-designing-your-types/182-as-in-mapped-types.problem.ts diff --git a/src/080-configuring-typescript/182-creating-declaration-files-and-declaration-maps.solution.ts b/src/075-designing-your-types/182-as-in-mapped-types.solution.ts similarity index 100% rename from src/080-configuring-typescript/182-creating-declaration-files-and-declaration-maps.solution.ts rename to src/075-designing-your-types/182-as-in-mapped-types.solution.ts diff --git a/src/080-configuring-typescript/183-setting-up-types-for-node.problem.ts b/src/080-configuring-typescript/183-introduction-to-tsconfig.problem.ts similarity index 100% rename from src/080-configuring-typescript/183-setting-up-types-for-node.problem.ts rename to src/080-configuring-typescript/183-introduction-to-tsconfig.problem.ts diff --git a/src/080-configuring-typescript/183-setting-up-types-for-node.solution.ts b/src/080-configuring-typescript/183-introduction-to-tsconfig.solution.ts similarity index 100% rename from src/080-configuring-typescript/183-setting-up-types-for-node.solution.ts rename to src/080-configuring-typescript/183-introduction-to-tsconfig.solution.ts diff --git a/src/080-configuring-typescript/184-set-up-types-for-simple-scripts.problem.ts b/src/080-configuring-typescript/184-tsconfig-bases.problem.ts similarity index 100% rename from src/080-configuring-typescript/184-set-up-types-for-simple-scripts.problem.ts rename to src/080-configuring-typescript/184-tsconfig-bases.problem.ts diff --git a/src/080-configuring-typescript/184-set-up-types-for-simple-scripts.solution.ts b/src/080-configuring-typescript/184-tsconfig-bases.solution.ts similarity index 100% rename from src/080-configuring-typescript/184-set-up-types-for-simple-scripts.solution.ts rename to src/080-configuring-typescript/184-tsconfig-bases.solution.ts diff --git a/src/080-configuring-typescript/185-set-up-types-for-test-files.problem.ts b/src/080-configuring-typescript/185-multiple-tsconfig-json-files.problem.ts similarity index 100% rename from src/080-configuring-typescript/185-set-up-types-for-test-files.problem.ts rename to src/080-configuring-typescript/185-multiple-tsconfig-json-files.problem.ts diff --git a/src/080-configuring-typescript/185-set-up-types-for-test-files.solution.ts b/src/080-configuring-typescript/185-multiple-tsconfig-json-files.solution.ts similarity index 100% rename from src/080-configuring-typescript/185-set-up-types-for-test-files.solution.ts rename to src/080-configuring-typescript/185-multiple-tsconfig-json-files.solution.ts diff --git a/src/080-configuring-typescript/186-set-up-types-for-bundled-web-app.problem.ts b/src/080-configuring-typescript/186-extending-from-other-tsconfig-json-files.problem.ts similarity index 100% rename from src/080-configuring-typescript/186-set-up-types-for-bundled-web-app.problem.ts rename to src/080-configuring-typescript/186-extending-from-other-tsconfig-json-files.problem.ts diff --git a/src/080-configuring-typescript/186-set-up-types-for-bundled-web-app.solution.ts b/src/080-configuring-typescript/186-extending-from-other-tsconfig-json-files.solution.ts similarity index 100% rename from src/080-configuring-typescript/186-set-up-types-for-bundled-web-app.solution.ts rename to src/080-configuring-typescript/186-extending-from-other-tsconfig-json-files.solution.ts diff --git a/src/085-the-utils-folder/187-intro-to-the-utils-folder.problem.ts b/src/080-configuring-typescript/187-project-references.problem.ts similarity index 100% rename from src/085-the-utils-folder/187-intro-to-the-utils-folder.problem.ts rename to src/080-configuring-typescript/187-project-references.problem.ts diff --git a/src/085-the-utils-folder/187-intro-to-the-utils-folder.solution.ts b/src/080-configuring-typescript/187-project-references.solution.ts similarity index 100% rename from src/085-the-utils-folder/187-intro-to-the-utils-folder.solution.ts rename to src/080-configuring-typescript/187-project-references.solution.ts diff --git a/src/085-the-utils-folder/188-generic-functions-without-inference.problem.ts b/src/080-configuring-typescript/188-jsx.problem.ts similarity index 100% rename from src/085-the-utils-folder/188-generic-functions-without-inference.problem.ts rename to src/080-configuring-typescript/188-jsx.problem.ts diff --git a/src/085-the-utils-folder/188-generic-functions-without-inference.solution.ts b/src/080-configuring-typescript/188-jsx.solution.ts similarity index 100% rename from src/085-the-utils-folder/188-generic-functions-without-inference.solution.ts rename to src/080-configuring-typescript/188-jsx.solution.ts diff --git a/src/085-the-utils-folder/189-type-parameter-defaults-in-generic-functions.problem.ts b/src/080-configuring-typescript/189-rules-that-make-up-strict-mode.problem.ts similarity index 100% rename from src/085-the-utils-folder/189-type-parameter-defaults-in-generic-functions.problem.ts rename to src/080-configuring-typescript/189-rules-that-make-up-strict-mode.problem.ts diff --git a/src/085-the-utils-folder/189-type-parameter-defaults-in-generic-functions.solution.ts b/src/080-configuring-typescript/189-rules-that-make-up-strict-mode.solution.ts similarity index 100% rename from src/085-the-utils-folder/189-type-parameter-defaults-in-generic-functions.solution.ts rename to src/080-configuring-typescript/189-rules-that-make-up-strict-mode.solution.ts diff --git a/src/085-the-utils-folder/190-type-parameter-constraints-with-generic-functions.problem.ts b/src/080-configuring-typescript/190-no-unchecked-indexed-access.problem.ts similarity index 100% rename from src/085-the-utils-folder/190-type-parameter-constraints-with-generic-functions.problem.ts rename to src/080-configuring-typescript/190-no-unchecked-indexed-access.problem.ts diff --git a/src/085-the-utils-folder/190-type-parameter-constraints-with-generic-functions.solution.ts b/src/080-configuring-typescript/190-no-unchecked-indexed-access.solution.ts similarity index 100% rename from src/085-the-utils-folder/190-type-parameter-constraints-with-generic-functions.solution.ts rename to src/080-configuring-typescript/190-no-unchecked-indexed-access.solution.ts diff --git a/src/085-the-utils-folder/191-generic-functions-with-inference.problem.ts b/src/080-configuring-typescript/191-creating-declaration-files-and-declaration-maps.problem.ts similarity index 100% rename from src/085-the-utils-folder/191-generic-functions-with-inference.problem.ts rename to src/080-configuring-typescript/191-creating-declaration-files-and-declaration-maps.problem.ts diff --git a/src/085-the-utils-folder/191-generic-functions-with-inference.solution.ts b/src/080-configuring-typescript/191-creating-declaration-files-and-declaration-maps.solution.ts similarity index 100% rename from src/085-the-utils-folder/191-generic-functions-with-inference.solution.ts rename to src/080-configuring-typescript/191-creating-declaration-files-and-declaration-maps.solution.ts diff --git a/src/085-the-utils-folder/192-multiple-type-arguments.problem.ts b/src/080-configuring-typescript/192-setting-up-types-for-node.problem.ts similarity index 100% rename from src/085-the-utils-folder/192-multiple-type-arguments.problem.ts rename to src/080-configuring-typescript/192-setting-up-types-for-node.problem.ts diff --git a/src/085-the-utils-folder/192-multiple-type-arguments.solution.ts b/src/080-configuring-typescript/192-setting-up-types-for-node.solution.ts similarity index 100% rename from src/085-the-utils-folder/192-multiple-type-arguments.solution.ts rename to src/080-configuring-typescript/192-setting-up-types-for-node.solution.ts diff --git a/src/085-the-utils-folder/193-create-group-by-function.problem.ts b/src/080-configuring-typescript/193-set-up-types-for-simple-scripts.problem.ts similarity index 100% rename from src/085-the-utils-folder/193-create-group-by-function.problem.ts rename to src/080-configuring-typescript/193-set-up-types-for-simple-scripts.problem.ts diff --git a/src/085-the-utils-folder/193-create-group-by-function.solution.ts b/src/080-configuring-typescript/193-set-up-types-for-simple-scripts.solution.ts similarity index 100% rename from src/085-the-utils-folder/193-create-group-by-function.solution.ts rename to src/080-configuring-typescript/193-set-up-types-for-simple-scripts.solution.ts diff --git a/src/085-the-utils-folder/194-type-predicates.problem.ts b/src/080-configuring-typescript/194-set-up-types-for-test-files.problem.ts similarity index 100% rename from src/085-the-utils-folder/194-type-predicates.problem.ts rename to src/080-configuring-typescript/194-set-up-types-for-test-files.problem.ts diff --git a/src/085-the-utils-folder/194-type-predicates.solution.ts b/src/080-configuring-typescript/194-set-up-types-for-test-files.solution.ts similarity index 100% rename from src/085-the-utils-folder/194-type-predicates.solution.ts rename to src/080-configuring-typescript/194-set-up-types-for-test-files.solution.ts diff --git a/src/085-the-utils-folder/195-assertion-functions.problem.ts b/src/080-configuring-typescript/195-set-up-types-for-bundled-web-app.problem.ts similarity index 100% rename from src/085-the-utils-folder/195-assertion-functions.problem.ts rename to src/080-configuring-typescript/195-set-up-types-for-bundled-web-app.problem.ts diff --git a/src/085-the-utils-folder/195-assertion-functions.solution.ts b/src/080-configuring-typescript/195-set-up-types-for-bundled-web-app.solution.ts similarity index 100% rename from src/085-the-utils-folder/195-assertion-functions.solution.ts rename to src/080-configuring-typescript/195-set-up-types-for-bundled-web-app.solution.ts diff --git a/src/090-the-style-guide/196-hungarian-notation.problem.ts b/src/085-the-utils-folder/196-intro-to-the-utils-folder.problem.ts similarity index 100% rename from src/090-the-style-guide/196-hungarian-notation.problem.ts rename to src/085-the-utils-folder/196-intro-to-the-utils-folder.problem.ts diff --git a/src/090-the-style-guide/196-hungarian-notation.solution.ts b/src/085-the-utils-folder/196-intro-to-the-utils-folder.solution.ts similarity index 100% rename from src/090-the-style-guide/196-hungarian-notation.solution.ts rename to src/085-the-utils-folder/196-intro-to-the-utils-folder.solution.ts diff --git a/src/090-the-style-guide/197-where-to-put-your-types.problem.ts b/src/085-the-utils-folder/197-generic-functions-without-inference.problem.ts similarity index 100% rename from src/090-the-style-guide/197-where-to-put-your-types.problem.ts rename to src/085-the-utils-folder/197-generic-functions-without-inference.problem.ts diff --git a/src/090-the-style-guide/197-where-to-put-your-types.solution.ts b/src/085-the-utils-folder/197-generic-functions-without-inference.solution.ts similarity index 100% rename from src/090-the-style-guide/197-where-to-put-your-types.solution.ts rename to src/085-the-utils-folder/197-generic-functions-without-inference.solution.ts diff --git a/src/090-the-style-guide/198-colocation-of-types.problem.ts b/src/085-the-utils-folder/198-type-parameter-defaults-in-generic-functions.problem.ts similarity index 100% rename from src/090-the-style-guide/198-colocation-of-types.problem.ts rename to src/085-the-utils-folder/198-type-parameter-defaults-in-generic-functions.problem.ts diff --git a/src/090-the-style-guide/198-colocation-of-types.solution.ts b/src/085-the-utils-folder/198-type-parameter-defaults-in-generic-functions.solution.ts similarity index 100% rename from src/090-the-style-guide/198-colocation-of-types.solution.ts rename to src/085-the-utils-folder/198-type-parameter-defaults-in-generic-functions.solution.ts diff --git a/src/095-migrating-from-javascript/199-strict-file-by-file-vs-ramp-up-strictness.problem.ts b/src/085-the-utils-folder/199-type-parameter-constraints-with-generic-functions.problem.ts similarity index 100% rename from src/095-migrating-from-javascript/199-strict-file-by-file-vs-ramp-up-strictness.problem.ts rename to src/085-the-utils-folder/199-type-parameter-constraints-with-generic-functions.problem.ts diff --git a/src/095-migrating-from-javascript/199-strict-file-by-file-vs-ramp-up-strictness.solution.ts b/src/085-the-utils-folder/199-type-parameter-constraints-with-generic-functions.solution.ts similarity index 100% rename from src/095-migrating-from-javascript/199-strict-file-by-file-vs-ramp-up-strictness.solution.ts rename to src/085-the-utils-folder/199-type-parameter-constraints-with-generic-functions.solution.ts diff --git a/src/095-migrating-from-javascript/200-dependencies-first.problem.ts b/src/085-the-utils-folder/200-generic-functions-with-inference.problem.ts similarity index 100% rename from src/095-migrating-from-javascript/200-dependencies-first.problem.ts rename to src/085-the-utils-folder/200-generic-functions-with-inference.problem.ts diff --git a/src/095-migrating-from-javascript/200-dependencies-first.solution.ts b/src/085-the-utils-folder/200-generic-functions-with-inference.solution.ts similarity index 100% rename from src/095-migrating-from-javascript/200-dependencies-first.solution.ts rename to src/085-the-utils-folder/200-generic-functions-with-inference.solution.ts diff --git a/src/095-migrating-from-javascript/201-madge.problem.ts b/src/085-the-utils-folder/201-multiple-type-arguments.problem.ts similarity index 100% rename from src/095-migrating-from-javascript/201-madge.problem.ts rename to src/085-the-utils-folder/201-multiple-type-arguments.problem.ts diff --git a/src/095-migrating-from-javascript/201-madge.solution.ts b/src/085-the-utils-folder/201-multiple-type-arguments.solution.ts similarity index 100% rename from src/095-migrating-from-javascript/201-madge.solution.ts rename to src/085-the-utils-folder/201-multiple-type-arguments.solution.ts diff --git a/src/085-the-utils-folder/202-create-group-by-function.problem.ts b/src/085-the-utils-folder/202-create-group-by-function.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/085-the-utils-folder/202-create-group-by-function.solution.ts b/src/085-the-utils-folder/202-create-group-by-function.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/085-the-utils-folder/203-type-predicates.problem.ts b/src/085-the-utils-folder/203-type-predicates.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/085-the-utils-folder/203-type-predicates.solution.ts b/src/085-the-utils-folder/203-type-predicates.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/085-the-utils-folder/204-assertion-functions.problem.ts b/src/085-the-utils-folder/204-assertion-functions.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/085-the-utils-folder/204-assertion-functions.solution.ts b/src/085-the-utils-folder/204-assertion-functions.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/090-the-style-guide/205-setting-up-eslint.problem.ts b/src/090-the-style-guide/205-setting-up-eslint.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/090-the-style-guide/205-setting-up-eslint.solution.ts b/src/090-the-style-guide/205-setting-up-eslint.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/090-the-style-guide/206-hungarian-notation.problem.ts b/src/090-the-style-guide/206-hungarian-notation.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/090-the-style-guide/206-hungarian-notation.solution.ts b/src/090-the-style-guide/206-hungarian-notation.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/090-the-style-guide/207-where-to-put-your-types.problem.ts b/src/090-the-style-guide/207-where-to-put-your-types.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/090-the-style-guide/207-where-to-put-your-types.solution.ts b/src/090-the-style-guide/207-where-to-put-your-types.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/090-the-style-guide/208-colocation-of-types.problem.ts b/src/090-the-style-guide/208-colocation-of-types.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/090-the-style-guide/208-colocation-of-types.solution.ts b/src/090-the-style-guide/208-colocation-of-types.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/090-the-style-guide/209-explicit-any-rule-or-not.problem.ts b/src/090-the-style-guide/209-explicit-any-rule-or-not.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/090-the-style-guide/209-explicit-any-rule-or-not.solution.ts b/src/090-the-style-guide/209-explicit-any-rule-or-not.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/090-the-style-guide/210-explicit-return-types-or-not.problem.ts b/src/090-the-style-guide/210-explicit-return-types-or-not.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/090-the-style-guide/210-explicit-return-types-or-not.solution.ts b/src/090-the-style-guide/210-explicit-return-types-or-not.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/090-the-style-guide/211-any-vs-ts-ignore-vs-ts-expect-error.problem.ts b/src/090-the-style-guide/211-any-vs-ts-ignore-vs-ts-expect-error.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/090-the-style-guide/211-any-vs-ts-ignore-vs-ts-expect-error.solution.ts b/src/090-the-style-guide/211-any-vs-ts-ignore-vs-ts-expect-error.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/090-the-style-guide/212-result-type.problem.ts b/src/090-the-style-guide/212-result-type.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/090-the-style-guide/212-result-type.solution.ts b/src/090-the-style-guide/212-result-type.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/095-migrating-from-javascript/213-strict-file-by-file-vs-ramp-up-strictness.problem.ts b/src/095-migrating-from-javascript/213-strict-file-by-file-vs-ramp-up-strictness.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/095-migrating-from-javascript/213-strict-file-by-file-vs-ramp-up-strictness.solution.ts b/src/095-migrating-from-javascript/213-strict-file-by-file-vs-ramp-up-strictness.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/095-migrating-from-javascript/214-dependencies-first.problem.ts b/src/095-migrating-from-javascript/214-dependencies-first.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/095-migrating-from-javascript/214-dependencies-first.solution.ts b/src/095-migrating-from-javascript/214-dependencies-first.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/095-migrating-from-javascript/215-madge.problem.ts b/src/095-migrating-from-javascript/215-madge.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/095-migrating-from-javascript/215-madge.solution.ts b/src/095-migrating-from-javascript/215-madge.solution.ts new file mode 100644 index 0000000..e69de29