enable company-mode.
separate some completion modes into separate files.