First commit with answers to parts 1 and 2