Almost done, some minor points missing