fully modernize the v2 module to a v3 extension and update to the newer repo patterns