implement markdown support