completed part's 1 to 4!