implemented evil mode, havent tested yet but seems vaguely ok