fix bugs, add rate