Tons of changes to get it working.