diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md
index 89f5b85d037..3a14bc7e4bf 100644
--- a/docs/DeveloperGuide.md
+++ b/docs/DeveloperGuide.md
@@ -221,7 +221,7 @@ The following activity diagram summarises what happens the user executes a sched
-**Design Considerations**
+#### **Design Considerations**
**Aspect: How to implement appointment for Person**
@@ -295,14 +295,14 @@ The following activity diagram illustrates how the complete operation is execute
### Gather Emails Feature
-The **Gather Emails** feature in our software system is designed to efficiently collect email addresses. This feature is facilitated by the `GatherCommand` and `GatherCommandParser`. Below is the class diagram of the gather emails feature.
+The **Gather Emails** feature in our software system is designed to efficiently collect email addresses. This feature is facilitated by the `GatherCommand` and `GatherCommandParser`. Below is the class diagram of the `gather emails` feature.
![GatherClassDiagram](images/GatherClassDiagram.png)
#### Implementation Overview
-The `GatherCommand` is initiated by the `GatherCommandParser`. The `GatherCommandParser` checks for the prefixes `fp/` or `t/` in the user's input and creates either a `GatherEmailByFinancialPlan` or `GatherEmailByTag` object respectively.
-Both `GatherEmailByFinancialPlan` or `GatherEmailByTag` implements the `GatherEmailPrompt` interface.
+The `GatherCommand` is initiated by the `GatherCommandParser`. The `GatherCommandParser` parses the arguments and creates either a `GatherEmailByFinancialPlan` or `GatherEmailByTag` object respectively.
+Both `GatherEmailByFinancialPlan` or `GatherEmailByTag` implements the `GatherEmailPrompt` interface.
The `GatherCommand` takes in the `GatherEmailPrompt` object and passes it into the current `Model`, subsequently interacting with the `AddressBook` class.
The `GatherCommand#execute()` executes the gather operation by calling `Model#gatherEmails(GatherEmailPrompt prompt)`.
@@ -319,27 +319,27 @@ The `UniquePersonsList` class maintains a list of unique persons. The `UniquePer
Depending on the type of `GatherEmailPrompt`, the method above triggers either:
-- `Person#gatherEmailsContainsTag(String prompt)` — Checks if the given prompt is a substring of any Tag names in the `Set` of the current person.
-- `Person#gatherEmailsContainsFinancialPlan(String prompt)` — Checks if the given prompt is a substring of any Financial Plan names in the `Set` of the current person.
+- `Person#gatherEmailsContainsTag(String prompt)` — Checks if the given prompt is a substring of any `Tag` names in the `Set` of the current person.
+- `Person#gatherEmailsContainsFinancialPlan(String prompt)` — Checks if the given prompt is a substring of any `FinancialPlan` names in the `Set` of the current person.
-These methods internally utilize `Tag#containsSubstring(String substring)` and `FinancialPlan#containsSubstring(String substring)`, respectively. These substring comparisons are performed in a case-insensitive manner by converting both the prompt and the financial plan/tag names to lowercase before the check.
-This is to make gathering of emails more convenient and flexible.
+These methods internally utilize `Tag#containsSubstring(String substring)` and `FinancialPlan#containsSubstring(String substring)`, respectively. These substring comparisons are performed in a case-insensitive manner by converting both the prompt and the `FinancialPlan` or `Tag` names to lowercase before the check.
+By allowing partial input, users can efficiently find email addresses associated with lengthy `Tag` or `FinancialPlan` names. The case-insensitive approach enhances user-friendliness, ensuring consistent and reliable results, regardless of input case.
-Currently, we only allow gathering emails by `FinancialPlan` and `Tag` as these are the more likely to be searched to gather emails by. However, additional classes implementing the `GatherEmailPrompt` interface can be added to enable the gathering of emails based on a broader range of fields.
+Currently, we only allow gathering emails by `FinancialPlan` and `Tag` fields as these are the more likely to be searched to gather emails by. However, additional classes implementing the `GatherEmailPrompt` interface can be added to enable the gathering of emails based on a broader range of fields.
-The following sequence diagram shows how the gather emails by financial plan operation works:
+The following sequence diagram shows how the gather emails by `FinancialPlan` field operation works:
![GatherSequenceDiagram2](images/GatherSequenceDiagram2.png)
#### Design Considerations
**Aspect: How many inputs to accept**
-* **Alternative 1 (Current Choice):** User can only search by one Financial Plan or Tag.
+* **Alternative 1 (Current Choice):** User can only search by one `FinancialPlan` or `Tag`.
* **Pros:** Easy to implement. Limits the potential for bugs.
* **Cons:** Limited filtering options.
-* **Alternative 2:** User can search by multiple Financial Plans or Tags.
- * **Pros:** More flexible (e.g. gathering by a combination of financial plans and tags).
+* **Alternative 2:** User can search by multiple `FinancialPlan` and `Tag` fields.
+ * **Pros:** More flexible (e.g. gathering by a combination of `FinancialPlan` and `Tag`).
* **Cons:** Introduces more complexity and requires additional error handling.
@@ -388,7 +388,7 @@ searched fields, but extending the feature to search in other fields is possible
* Cons: Less flexible, slightly more difficult to implement.
**Aspect: How to implement `CombinedPredicate`**
-* **Alternative 1 (current choice):** Use varargs and a common interface.
+* **Alternative 1 (current choice):** Use `varargs` and a common interface.
* Pros: More flexible in usage while still testable.
* Cons: More difficult to modify and the check for equality can be defeated with enough effort.