changed a ton of things... lots of fixes