Deciding what is optional and not