added lots of stuff. don't ask