large code changes and SRV record support