refactor to handle part payments, multiple taxes