Restructured code for readability

Added more words to extra.txt
Configurable options are now at the top of the file
Refactored into a class-based design
Added logging