fix a bug where the bill is not split evenly
add some tests