impl product rate
act like getchar