restructing to make more sense out of things -- wip