change some "protected"s to "public"

they were interfering with my refactoring of the link creation
primitives, and besides protected is generally a smell anyway
DRY the link creation prims into one source file