Final version! Perhaps some minor editing is still required.