final working part 1