cleaned up part2