I did a poor job explaining it, sorry.   I'm thinking we can combine the "get text part. if that doesn't exist, get the html part and convert to text. whatever you got, calculate a preview off of that" into a single ```getPreview()``` method.  When I look at ```LocalStore```'s usage of calculateContentPreview, that's effectively what's happening.  I made a mistake earlier -- this would have to live inside of ```MimeMessage```, since that's what ```LocalStore``` is working with.