Work in progress. Nowhere near done.