hopefully this won't break in the future, but it seems okay for now