Beginning 2.0 rewrite