Hey Stuart! var str = "hello there"; function words() { return str.split(' '); } function firstLetter() { return str[0]; } var so = { str: "hello there", words: function() { return this.str.split(' '); }, firstLetter: function() { return this.str[0]; } } var StringOps = function(str) { this.prototype = so; this.prototype.str = str; } var lis = document.getElementsByTagName('li'); for(var i = 0, len = lis.length; i < len; i++) { lis[i].addEventListener('click', function() { this.parentNode.setAttribute('data-li-clicked', i); }, false); }