make xan_markup more modular