Many internal changes