Beginging rewrites

(will squash)