Added validation to check that amount is not too large or negative as well as added tests