refactor hotel rates
add some unit test