Updated roll function