refactor with (un)packfloat
refactor with (un)packint