separate out slowpin implementation