skeleton of how this should all be layed out