finished parts 1+2