author can be null