There are places to get domain names much cheaper than $40 a year.. godaddy.com, domainsatcost etc
Type in Google.com and search for domain names. They all follow pretty much the same rules and once you purchase one , no matter from who, you own it outright until it expires. You can get them for about $5 a year or less even.. I pay 12$ a year for most of mine . I have purchased over 150 in my line of work and I have never seen them $40, That is really high!
After you buy the domain name, then you need to find a hosting company to house your website. Again places like godaddy etc offer hosting at very reasonable rates as well.