Fixes #5 Closes #5
Fixes #3 Closes #3
Fixes #1 Closes #1

Clean up code
Support custom events
Make options settable using HTML attributes
Differentiate methods in private and public