``amount`` could also be numeric that responds to ``to_f``, message suggests it needs to be Money or implement ``cents``, same applies to couple of other similar messages.