Separated source and markup