ofcourse :) I am sure you could find a way better way to do it, but the way i went about it was creating WaypointManager, Waypoint and WaypointMarker classes.
The Manager would be called by any Waypoint on their Start method, and given a reference to it to hold in a list. From my playerController script I also gave the manager the Marker parent Transform (which was just an empty gameobject in my player). The the manager would then instantiate a Marker prefab everytime a new Waypoint was added.
The markers where basically just prefabs of every variation i wanted to have, and just chose a radius for each one so they wouldnt overlap.