move utils into their own file for unit tests, add unit testing suite