updates to adhere to assignment spec