Tons of changes, look at them carefully to see how they work.
Merge pull request #1 from Lomeli12/master

STUFF?