avoid "0" result (Roman numbers start at I (1))
use confess instead of croak for having backtrace