Self-avoiding polygons and walks: counting, joining and closing