This introduces a lot of dead code, which will be cleaned up later on, but is left there for reference.