implementation copied over
initial project + test input file