Fix Issue #143

This refactors things along the lines of what we discussed in Issue #143. After this refactor, we've shaved 50K off the full filer.js (now 264K), and 17K off filer.min.js (now 108K).