thinking maybe making a node version of  this