What's the process for rewriting and relicensing software?