Content love

Pull request based on #208 (and supercedes that pull request).

I'm keen to get this merged pretty quick since it's so big.