added sooooooo much stuff

much new, very ugly, such code