template and reader