Tons of changes/improvements