some intermediate additions