see compile.txt for instructions