I am trying to encapsulate some methods by using module pattern. I am also trying to avoid new function definitions on new object creation by using a prototype. The problem is I have to implement a constructor and I couldn't figure how. My code:

```
 // constructor
function Anagram(original) {
  this.original = original.toLowerCase()
  this.sortedOriginal = this.sort(this.original)
}

// prototype as a module
Anagram.prototype = (function() {
  function isAnagram(word) {
    word = word.toLowerCase()
    return this.original != word && sameLetters(word)
  }
  function sameLetters(word) {
    return this.sortedOriginal === sort(word)
  }
  function sort(str) {
    return str.split('').sort().join('')
  }
  return {
    match: function(words) {
      return words.filter(isAnagram, this)
    }
  }
}())

module.exports = Anagram

```

Running

```
Anagram.new('ant').match(['tan', 'stand', 'at'])

```

Fails with 

```
TypeError: Object #<Object> has no method 'sort'

```

And I understand why, `sort` is not defined in the constructor. How can I fix it?