initial rewrite branch at 0.5.0