completed 3.1 & 3.2