See talk page for documentation.