Doing some major redesigns

don't try to read anything yet it's incomprehensible