Completely restructured and reworked the filters. Provided abstract helper classes to provide a better way to extend the filters.
Modified the way in which pre and post processing is handled. Applied an observer pattern to apply observable functionality to the template classes. Observers can be 'registered' with addListener and events are dispatched internally with dispatch(). Each listener will listen to one event and be passed a context array of goodies when the event is dispatched.