[refactor] use number type as read args
[optim] use number types for s1 and s0