Major update, refactor, bug fixes, update to webcomponents.js.