We currently use a mix of both which can be untiddy at places and is error prone when doing intermediate computations that may go through negative values.