removing layers from the caching onion and making things more explicit, also pushed markdown processing into the view model so it can be done off of the UI thread