New update
A working version
Cleanup code
Cosmetic changes