completed subset 2, added standard tests, refactored print function into 2 functions, added tab indenting