diff --git a/README.md b/README.md
index 3e4d45c10f203caffb07e19813037cdfdd59d753..390c7cbfbc10c5354b19b6ee12588a973585e8a0 100644
--- a/README.md
+++ b/README.md
@@ -16,9 +16,9 @@ The assignment is worth 20% of your final mark.
 
 ### Task 1 -- Equivalence partitioning
 
-Using the specification, apply equivalence partitioning to derive equivalence classes for the following methods in the API: `register`, `update`, and `getSteps`.
+Using the specification, apply equivalence partitioning to derive equivalence classes for the following methods in the API: `register`, `update`, and `getStepData`.
 
-Document your equivalence partitioning process for each method using only test template trees, listing the assumptions that you make (if any). You should have two trees: one for each method. You will be marked *only* on your test template trees (plus any assumptions listed), so ensure that they are clear and concise. 
+Document your equivalence partitioning process for each method using only test template trees, listing the assumptions that you make (if any). You should have three trees: one for each method. You will be marked *only* on your test template trees (plus any assumptions listed), so ensure that they are clear and concise. 
 
 You can omit some nodes to improve readability, provided that it is clear what you intend. For example, if I was testing a book store and I wanted to test all seven Harry Potter books, I would create nodes for 1 and 7, and then use ``\ldots'' in between them to represent the other five books.
 
diff --git a/programs/original/swen90006/fotbot/FotBot.java b/programs/original/swen90006/fotbot/FotBot.java
index dced398f2e123fac02f583c8373d5ee4d20469f5..287dc1f27eb065c8da29d475cfb43fbe47f842ee 100644
--- a/programs/original/swen90006/fotbot/FotBot.java
+++ b/programs/original/swen90006/fotbot/FotBot.java
@@ -74,7 +74,7 @@ public class FotBot
      *
      * The password must conform to the following requirements:
      *  - Must be at least eight characters long
-     *  - Must contain at least one special ASCII character other than a letter or digit (that is, 
+     *  - Must contain at least one special ASCII character other than a letter or digit (that is,
      *       other than a-z, A-Z, or 0-9)
      *
      * @param username   the username for the user to be added
@@ -83,7 +83,7 @@ public class FotBot
      * @throws InvalidUsernameException  if the username does not fit
      *          the requirements
      * @throws InvalidPasswordException  if the password does not fit
-     *          the requirements 
+     *          the requirements
      *
      * Assumption: username and password are non-null
      */
@@ -140,18 +140,18 @@ public class FotBot
      * of 'steps' is less than the number of days since the last
      * update, it updates those remaining days with 0. That is, it
      * updates as many days as possible and then backfills the rest
-     * with 0. 
-     * 
+     * with 0.
+     *
      * For example, if the last update is three days ago, and
      * steps is [3000, 5000], then update [0, 3000, 5000].
      *
      * @throws  NoSuchUserException if the user does not have an account
      * @throws  IncorrectPasswordException if the password is incorrect for this user
-     * 
+     *
      * Assumption: the length of 'steps' is always less than or equal
      * to numbers of days since the last update
-     * 
-     * Assumption: username and password are non-null
+     *
+     * Assumption: username, password, and steps are non-null
      *
      * Assumption: 'steps' records the order of the days from oldest
      * (at index 0) to most recent (at index steps.length - 1)
@@ -189,9 +189,11 @@ public class FotBot
      * @param username the username
      * @param password the password
      * @param friendUsername the friend's username
-     *     
+     *
      * @throws  NoSuchUserException if the user does not have an account
      * @throws  IncorrectPasswordException if the password is incorrect for this user
+     *
+     * Assumption: username, password, and friendUsername are non-null
      */
     public void addFriend(String username, String password, String friendUsername)
 	throws NoSuchUserException, IncorrectPasswordException
@@ -200,7 +202,7 @@ public class FotBot
 	    friends.get(username).add(friendUsername);
 	}
     }
-    
+
     /**
      * Check if someone is a friend of another person. Anyone can read this information
      *
@@ -213,7 +215,7 @@ public class FotBot
 
     /**
      * Read the step data from a user. A user should be able to read step data if and only if:
-     * - the data they are reading is their own; 
+     * - the data they are reading is their own;
      * - the data they are reading is their friends; or
      * - 'username' is FotBot.ADMIN_USERNAME
      *
@@ -221,6 +223,8 @@ public class FotBot
      *
      * @throws  NoSuchUserException if either user ('username' or 'user') does not have an account
      * @throws  IncorrectPasswordException if the password is incorrect for username
+     *
+     * Assumption: username, password, and targetUser are non-null
      */
     public List<Integer> getStepData(String username, String password, String targetUser)
 	throws NoSuchUserException, IncorrectPasswordException
@@ -238,7 +242,6 @@ public class FotBot
 	return result;
     }
 
-    
     /**
      * Increment the current day by a number of days
      */
@@ -248,9 +251,9 @@ public class FotBot
 	    currentDay.increment();
 	}
     }
-    
+
     /**
-     * Check a username and password combination, returning true if the 
+     * Check a username and password combination, returning true if the
      * username and password are correct and throwing an exception otherwise.
      *
      * @throws  NoSuchUserException if the user does not have an account