Improve: add 'mode' option