Currently all the auxiliary function return with `void` and get value reference instead of returning with the value.