Reverted some unneeded changes and added a few more test cases
Made amount strictly big decimal and standardized rounding handling