Beginning to reimplement for major version release 2