merge compile branch

I think this is good to go.