Add enum support and update Decimal to take arguments

Approver: @drewish