add multicast support. fix various brokenness