Almost all heavy changes done

w0t