added part2 initial functionality