all the logic to make the dude type