Fundamental API and implementation changes