https://andrewowen.net/fr/blog/reusing-code-reverse-engineering-and-collaboration/