are all of these necessary?