new code and funct
part 2