compiles and run