After some discussions, we decided that the return values here were a bit messy.