why `preventDefault` here?