remove the separate metadata variable
move content filters out of the metadata
more refactoring
support push streaming too