lots of guards around functions defined by elpa and modes loaded via elpa