Removed distinction between required and optional attribtues