some of these fields can be null