completed 2.2 and 2.3