finish code w/ comments and test
finish code w/ comments and test