Total rewrite!