rate == 0 is nessesary