separated out AJAX stuff into a mixin, and made filtering work