refactoring the content plugin interface (again), this time to properly
support binary data"