less intermediate variables