made required fields non-nullable