Functional Part1 and Part2
bonus 1