lots o' unit testing