Complete API and implementation of almost all methods.