First rewrite, still more to finish