basic tests work, now need to tie it all together