only call getQ and getR when asked for