(also CC @cctuan) because we initial some properties but not setting up some options here, so I think `init()` is better than `setOptions()`.