implemented long instead of int16