finished parts 2 and 3