added the roll function