add finitemap, finish chapter 3