Updated with part 2