update documentation and make a lot of unnecissarily public variables private