Upgrade to 2.0, refine the interface