writter can be null