first strawman
set up some basic functionality