First code for parts 1 and 2