gui stuff and internal changes