these are kind of dumb