Moved listeners and filters into their own package