some intermediate results