there has got to be a better way