First Commit

This is the majority of the code.