Added more classes, tests, & functionality