Initial Commit

Merged 2.0 with evilC's changes to make 3.0.