first pass at restructure