use long instead of int