Added support for many much more modes.