restructure to PullMarker class