componentize all the state!!1!