new code and funct
part 1