Initial revision (unfinished).