This is the fancy gui stuff and some engine changes