ID, classes and html5 data attr options.

And some house cleaning. Closes #21 and closes #22.