Version 1.0, total rewrite