Leaving this branch, starting a new one based on this work, but clean.