deliverable 2 code

unit tests