move logic to amount_for method