TBH, I find this `mode` parameter kind of obscure. Is there anyway this could be made more explicit? Maybe by using two different methods?