compiles and runs