Rewrite to ditch GPLv2
Switch to gplv3