Note the code is more unstable than it began