compile and run