separate some completion modes into separate files.