it compiles, now to sort out other bugs