using long instead of int