maker and reader are functional