initial commit, finished part 1
finished part 2
completed