Replaced special cases with a simple naming convention to determine what is copied and what is not; implemented a sensible way to register filters internally