Added a bunch, and cleaned out a bunch, see blame for details
ignore some crap