use -O1 for compilation