https://albrightlabs.com/blog/avoiding-second-system-syndrome-in-code-rewrites/