Supposedly Final Code!

Hopefully no more changes to make unless more bugs are found.
Changes may be made in terms of code organization/layout.