Rewrite, add notes on design