put everything back into one cpp file