hpp implementing part 2