General Rewrite

@e-schultz please merge