always work with boxed values. don't drop into native land prematurely.