added rate handling