sigh
there must be a better way