Numerous changes to support cleaner syntax.