implement Chapter model