Version 2.0.0 rewrite