multiple improvements

that i am too lazy to explain