Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
GUI Graphics Open Source Linux

Fedora 25 To Run Wayland By Default Instead Of X.Org Server (phoronix.com) 151

An anonymous reader writes: Fedora 25 will finally be the first release for this Linux distribution -- and the first tier-one desktop Linux OS at large -- that is going ahead and using Wayland by default. Wayland has been talked about for years as a replacement to the xorg-server and finally with the upcoming Fedora 25 release this is expected to become a reality. The X.Org Server will still be present on Fedora systems for those running into driver problems or other common issues.
Fedora's steering committee agreed to the change provided the release notes "are clear about how to switch back to X11 if needed." In addition, according to the Fedora Project's wiki, "The code will automatically fall back to Xorg in cases where Wayland is unavailable (like NVIDIA)."
This discussion has been archived. No new comments can be posted.

Fedora 25 To Run Wayland By Default Instead Of X.Org Server

Comments Filter:
  • by Anonymous Coward on Saturday August 20, 2016 @06:08AM (#52737369)

    If there are "common issues", it shouldn't be a default, no matter what it is.

    This literally damages the reputation of FOSS as a whole - recklessly making "common issues" more common.

  • Wayland bashing (Score:3, Insightful)

    by packrat0x ( 798359 ) on Saturday August 20, 2016 @06:26AM (#52737403)

    Cue negative Wayland comments by those who have not read, or do not understand the X.org code. Who do we hope will maintain the codebase? There's what, four men still alive, who can do the job?

    • As long as... (Score:5, Insightful)

      by Kludge ( 13653 ) on Saturday August 20, 2016 @06:33AM (#52737415)

      I'm fine with Wayland...
      As long as it still runs all my wonderful diverse choices of Unix desktop environments.

      • I'm fine with Wayland... As long as it still runs all my wonderful diverse choices of Unix desktop environments.

        Which are used to run a browser and 26 terminals. So no problem there. As long as we have a good browser, lack of Xorg compatibility will become less and less of a issue.

        • by jedidiah ( 1196 )

          Lame troll is lame.

          However, I take heavy use of features that are really only usable with BLOB drivers. This includes heavy use of 3D acceleration and hardware video decoding.

          Plus that little feature that's pervasive in corporations now but X-haters pretend is some sort of obscure silly nonsense.

    • by dwywit ( 1109409 )

      Wayland is not why I don't like Fedora. I will however give it another chance, seeing as how they seem to be taking it seriously this time.

      • by cfalcon ( 779563 )

        I mean, I see this as "skip FC25, wait for this to calm down". There's no way that this will work flawlessly immediately, after all.

    • Re:Wayland bashing (Score:5, Insightful)

      by isj ( 453011 ) on Saturday August 20, 2016 @07:11AM (#52737469) Homepage

      I've read the x.org codebase. Mostly to discover the grey areas in the protocol when I was working on a X/Window server running on ms-windows. The x.org code is not pretty but that is mostly due to being an old code base.

      The X protocol has its problems and quirks too, particularly when dealing with long latency between server and client. It was designed when using high-level primitives (eg "draw line to (x,y) in color Z") made sense. When client just use such primitives the speed is impressive. But some 10 years ago clients started doing client rendering and just sending bitmaps to the display server. Mostly that meant higher bandwidth and fewer round-trips. Whether that is good or bad depends on the clients and the environment.

      I have followed the progress of wayland a bit, and I have actually seen some of the presentations. It seems to me that wayland initially was infested by the type of developers that think that all they need is direct access to video memory, and for remote applications all you need is VNC-style full-desktop remote. Of course people who use remote X think that that is a myopic and arrogant view. It seems that wayland has gained some developers in the past few years who have more common sense and one of the new goals is to support remote X clients in a root-less fashion. When they have implemented that and also made sure that both clipboard and X-selection work then I'll give wayland a shot.

      • by Anonymous Coward

        My understanding of why X needs to go away is that it comes down to security. The xdg-app/flatpak story is completely useless if you can have perfect isolation except for the graphics stack. X makes it trivial for one application to grab the graphical content of another process, but you can't securely implement a screen lock.

        • Re:Wayland bashing (Score:5, Informative)

          by serviscope_minor ( 664417 ) on Saturday August 20, 2016 @07:41AM (#52737535) Journal

          My understanding of why X needs to go away is that it comes down to security. The xdg-app/flatpak story is completely useless if you can have perfect isolation except for the graphics stack. X makes it trivial for one application to grab the graphical content of another process, but you can't securely implement a screen lock.

          This is all out of date.

          Firstly, programs can only grab each other's windows if you give them permissions to. X has security mechanisms to prevent it if you wish to prevent such things. The easiest way is to do X over SSH, and disable trusted X11 forwarding. All that does is use XAuth to mark the client as untrusted, and you can do that without using ssh.

          The breaking out of sandboxes article a while back by Matthew Garrett only worked because in Ubuntu's implementation it treated the sandboxed programs as trusted. That's Ubuntu's fault not X, and in fact running his test program as untrusted demonstrated the X security mechanisms work just fine.

          The screen locker one is both overblown and wrong. It's true that if something else has a full grab then the screen locker can't supersede it. In that case, you can't start the locker and it;s usually incredibly obvious. If the screen locker succeeds, it is secure and you can't break out of it.

          But now it's also simply wrong. If you run a compositor, that intercepts ALL input events even with grabs because it has to be able to map them to the correct coordinates. If your screen locker is part of the compositor, then it is completely secure. I believe that's in fact exactly the same mechanism that's idiomatic in Wayland.

          • Just because something is possible 'in principle' with X11 is not enough. Doing security the right way needs to be easy and obvious, as does doing away with security, as does knowing which of these is the case. Possible but not easy means most won't do it; easy and default means most do, which gives a kind of 'herd immunity' where speculative attacks are likely to fail rather than succeed. This 'herd immunity' makes it more expensive for attackers to target, since the population of viable targets is small,

            • Just because something is possible 'in principle' with X11 is not enough.

              The claim was X is insecure. It is not, it's the default policies on common distributions which are insecure.

              Doing security the right way needs to be easy and obvious, as does doing away with security, as does knowing which of these is the case.

              Well, ssh makes it easy and obvious for remote X. A pre-packaged sandbox system ought to make it easy and obvious, by doing it automatically for the user except they didn't quite get it right.

          • If the screen locker succeeds, it is secure and you can't break out of it.

            Unless it crashes. That was the problem with XLock: some of its screensavers tended to crash, which killed the process and the screen lock with it.

            Jamie Zawinski wrote something about it: http://www.jwz.org/xscreensaver/toolkits.html [jwz.org]

            The xscreensaver daemon is a critical piece of security software. The reason for this is that, as a screen locker, any bug in the program that causes it to crash will cause the screen to unlock. As soon as xscreensaver is no longer running, the screen is no longer locked. Therefore, great care must be taken to ensure that the daemon never crash. And that it especially never crash as a result of (hostile) input from the keyboard or mouse.

            • Yeah that's not inherent to X though, as we can see by screensaver not suffering from that flaw. Youcould if you like make a Wayland compositor use a third party locker, which would disappear on a crash. Either way, the most secure way is to have the locker built into the compositor, which is supported in both X and Wayland.

              Anyway the problem you and Jamie Zawinski describe haven't been a practical problem for years. I don't know of a single distribution which even installs xlock by default. They all use xs

      • Re: (Score:1, Interesting)

        wayland initially was infested by the type of developers

        Wayland was founded by the X developers who wanted to call it X12 but realized that people would freak the hell out if they fixed it the way that it needed fixing, based on their experience with X11.

        Did you know that X11 has no security and that any stupid app running at the same time as your password manager can steal your keystrokes? Wayland fixes that, among other improvements to the 1980's architecture of X11.

        Besides that, the baroque layering tha

        • by MrKaos ( 858439 )

          wayland initially was infested by the type of developers

          Wayland was founded by the X developers who wanted to call it X12 but realized that people would freak the hell out if they fixed it the way that it needed fixing, based on their experience with X11.

          Do you mean Kristian Høgsberg [x.org]? I'm curious about how they needed to fix X11 and Wayland being the incremental successor X12, would you elaborate? Got a link?

          • If you were curious about things needing fixing in X11 then you'd just google it. You'd also due of old age before getting to the bottom of all the reasons why X11 is a great way of doing things if you're in the 80s but no so much on the past 20 years.

            • by MrKaos ( 858439 )
              Oh, I agree. I'm not sentimental about X11, however there is some good amongst the bad so it would be good to keep that. I would have googled it myself however I have an injury and can't spend a lot of time at the computer right now.
        • Did you know that X11 has no security and that any stupid app running at the same time as your password manager can steal your keystrokes? Wayland fixes that, among other improvements to the 1980's architecture of X11.

          False. X11 has a perfectly good security model. The trouble is almost no distros enable it by default leading people to think this is the case. If you run untrusted clients as untrusted (e.g. using ssh with ForwardX11Trusted set to false) then they can do none of those things.

          Besides that, the

      • by Uecker ( 1842596 )

        I've read the x.org codebase. Mostly to discover the grey areas in the protocol when I was working on a X/Window server running on ms-windows. The x.org code is not pretty but that is mostly due to being an old code base.

        The X protocol has its problems and quirks too, particularly when dealing with long latency between server and client. It was designed when using high-level primitives (eg "draw line to (x,y) in color Z") made sense. When client just use such primitives the speed is impressive. But some 10 years ago clients started doing client rendering and just sending bitmaps to the display server. Mostly that meant higher bandwidth and fewer round-trips.

        Bandwidth does not matter nowadays and using Xrender than drawing commands does not really use more round-trips. In fact, Xrender was exactly designed for this purpose. The round-trips come from badly-designed clients, and synchronous use of the X protocol although it is designed for asynchronous use. I have have image viewers which work perfectly fine over the network also they move a lot of pixels.

        • Re:Wayland bashing (Score:4, Interesting)

          by silanea ( 1241518 ) on Saturday August 20, 2016 @12:20PM (#52738477)

          Bandwidth does not matter nowadays [...]

          Bandwidth does matter, and in some ways more than ever, for two reasons:

          1. By now we have highly portable devices with enough computational capacity to do out in the field what would only two decades ago have required a few shelves full of Crays – but in the same time we have managed to unlearn how to efficiently use bandwidth. Many applications of computing or telecommunications still work in environments where bandwidth is a scarce resource. Not every service goes through fibre or LTE.
          2. We have so many devices out there that every modest reduction in bandwidth use per device runs up to a sizable gain.
      • by Kjella ( 173770 )

        But some 10 years ago clients started doing client rendering and just sending bitmaps to the display server. Mostly that meant higher bandwidth and fewer round-trips. Whether that is good or bad depends on the clients and the environment.

        Actually they started doing that back in the 90s, the X primitives were already very outdated when KDE/Gnome launched in 1998/1999. And this is really the core issue, if you want a modern looking Linux with gradients, transparency, animations, anti-aliasing and various pretty effects you let a graphics toolkit do the job and hand X a bitmap. And they run roughly as bad under remote X as under VNC, because under those circumstances they do pretty much the same thing.

        The applications that do work well using r

        • by Uecker ( 1842596 )

          But some 10 years ago clients started doing client rendering and just sending bitmaps to the display server. Mostly that meant higher bandwidth and fewer round-trips. Whether that is good or bad depends on the clients and the environment.

          Actually they started doing that back in the 90s, the X primitives were already very outdated when KDE/Gnome launched in 1998/1999. And this is really the core issue, if you want a modern looking Linux with gradients, transparency, animations, anti-aliasing and various pretty effects you let a graphics toolkit do the job and hand X a bitmap. And they run roughly as bad under remote X as under VNC, because under those circumstances they do pretty much the same thing.

          The applications that do work well using remote X are the same applications that shy away from the "render bitmaps" strategy and with their primitives they look... primitive.

          The idea that remote graphics works only efficiently when sending line-drawing primitives over the network is a myth. The applications which do currently not work well are those which do have a lot of round-trips. Most of the time for stupid reason because the toolkits stopped caring about remote X. But this has nothing to do with being bitmap-based. In fact, the XRENDER extension was introduced 20 years ago (or so) to make remote X work exactly for this reason. And yes, it works. I have a special-purpose i

    • Honest Question (Score:4, Insightful)

      by Anonymous Coward on Saturday August 20, 2016 @07:17AM (#52737483)

      Does Wayland, at this stage, provide the same level of functionality that Xorg does? Does everything just work or do all the applications need to be re-achitected to work properly. If I can't ssh -X me@remote WhateverFuckingApp& then I am not even remotely interested in hearing about Wayland, let alone trying it.

      After 17 years of daily use, the Linux desktop has come way too for for me to tolerate a major step back or reduction on feature set with the mere promise of improvement in coming months(years), again. KDE4, Gnome3, and Unity were the absolute-last-straws for that scenario.

      From now on, new stuff has to be a major improvement in quality, features, functionality, without sacrifice for me to tolerate the interruption in my workflow and the relearning, for the n-teenth time, of basic desktop operation. If the application or feature doesn't make me say; 'Oh wow, I really want that!', then it can FOAD

      The days of change for the sake of change, or change for the sake of a programmer's fantasy of technical superiority are over. I expect the Linux desktop to work and to get out of my way so that I can work or play.

      • by Anonymous Coward

        X11 forwarding should be enabled with caution. Users with the ability to bypass file permissions on the remote host (for the user's X authorization database) can access the local X11 display through the forwarded connection. An attacker may then be able to perform activities such as keystroke monitoring.

        • by Anonymous Coward

          Um, no. SSH X forward is necessary. It is a part of daily work flow.

      • Re:Honest Question (Score:5, Insightful)

        by MrKaos ( 858439 ) on Saturday August 20, 2016 @09:24AM (#52737783) Journal

        I think the most important usability features X11 has over Windows and mac is the suberbly powerful cut paste and remote display paradigm. If I can use those X features in Wayland I'll be happy, otherwise, I think you have a point Mr AC.

        I switched from Windows to linux because I was sick of that shit, change for change sake. I want change for the sake of a usability improvment in a computing interface that I am compelled to use because it makes me more efficient at using a computer. I am an advanced user and I want an advanced interface. For me that is an ambidextrous mousing paradigm, remote windows, more advanced cut and paste, multiple desktops.

        Frankly, UI configurability in linux has gone backwards since it got more popular, workspaces interfaces have *less* functionality than it did in 2008 when I could drag windows between workspaces and you could configure just about every aspect of gnome to customize your linux desktop experience. I didn't want a Mac or Windows UI and since their UI's adopted workspaces the functionality in linux seems to be dumbed down and advanced linux GUI features being domesticated.

        Wayland looks like it is answering the need for backwards X11 compatibility with Weston so it remains to be seen if it will take the powerful features of X11 and leave some of the atropied aspects behind.

        • workspaces interfaces have *less* functionality than it did in 2008 when I could drag windows between workspaces

          Glad I've never used Gnome, because this works as expected in XFCE.

          • Re: Honest Question (Score:4, Informative)

            by buchner.johannes ( 1139593 ) on Saturday August 20, 2016 @05:38PM (#52739941) Homepage Journal

            Eh? You can do this in GNOME3. Just press super and drag between desktops. Or do Shift-Ctrl-Alt-Up/Down to switch virtual desktops and bring the window with you.

            • In XFCE you just click and drag it with the mouse as the workspace switches. No hotkey required.

              You can also just use the mouse to switch to workspaces. Just move the mouse to the edge of the current workspace and keep going, it will just switch. No hotkeys, no clicking. There is even an adjustable "resistance threshold" so you can make it more or less resistant to accidentally switching workspaces during normal use of the cursor. I keep mine pretty low because I like to move around freely... and because it

      • Re: (Score:3, Informative)

        by armanox ( 826486 )

        Another one - is there a fully compatible equivalent to X -query $hostname? I should have the option to connect to servers on my network however I need/choose to. I have users that use ssh to do remote X over a VPN to Solaris boxes, etc; and these all need to not break. And it's important to keep the heat on Fedora because what ends up in Fedora will be in RHEL 8.

        Personally, I think I'm going to end up with a lot of unhappy users, or end up with Solaris workstations being deployed with the direction Linu

      • No. But no window system will ever provide the same level of functionality because arbitrary shit like the ability to send a 3d output of a window frame by frame to a printer were dumb in the first place.

        In all seriousness though the main purpose of Wayland is to gut the insane amount of functionality X11 provides and instead go back to the unix philosophy of do one thing an do it well.

      • by pz ( 113803 )

        Fedora 24 is THE reason that I'm now running CentOS 7 on my machines. Screw the constant need to upgrade / reinstall the OS, screw the constant need to figure out how to fix things that stopped working with the newest version, screw the lack of updates in basically a year (because who is stupid enough to upgrade to a new OS immediately when it's released?), screw the idiots who think that change for the sake of change alone is a good idea.

        Fundamentally, I gave up on Fedora when I installed a test instance

    • Re:Wayland bashing (Score:5, Insightful)

      by squiggleslash ( 241428 ) on Saturday August 20, 2016 @07:33AM (#52737521) Homepage Journal

      Nobody's enthusiastic about X. We're not not happy about a replacement that lacks the features of X that we loved and in many cases relied upon.

      And no, I don't want to hear that only "1% of users use the XSERVER variable" or that the underlying implementation wasn't very good.

      Hardly anyone uses GNU/Linux, but we'd never accept that as an argument for abolishing the operating system and requiring Windows.

      As for the latter - it doesn't matter if it's not perfect, it works damn it. I can manage a remote instance of LibreOffice as an app integrated on my desktop. I do this.

      We'll be happy with Wayland when it's as good as, or better than, X11. Not when the underlying code is temporarily easier to understand (you think it'll stay that way?), but when its feature complete, by our standards, not by the developers.

      • It is feature complete. What you want is the ability to do absolutely everything which is one of the big problems in X11. So carry on using it. You won't ever find a replacement if your criteria is that it needs to be feature comparable.

    • by Anonymous Coward

      wayland sucks, systemd sucks.

    • Re:Wayland bashing (Score:5, Insightful)

      by Uecker ( 1842596 ) on Saturday August 20, 2016 @09:25AM (#52737797)

      The code base of X is OK. Yes, I have read the code of many different open-source projects (and some close-source). But the real problem is not the code at all, I don't mind if somebody decides it needs to reimplement the X server for some reason. The real problem with Wayland is breaking backwards and forwards compatibility with a universally supported protocol instead of carefully revising it in a backwards compatible way (which would easily be possible with extensions). This is just insanely stupid.

      • by Anonymous Coward

        Congratulations! You have just figured out why they called it a new name ("Wayland") instead of calling it "X11 release 8". They wanted to clean everything up so keeping compatibility wasn't an option.

        And I'm glad you told me that the code is OK. Are you an X11 developer? Because I've watched YouTube videos of X developers telling me the code is brain-damaged and they are tired of dealing with it.

        Here's a short outline of why Wayland is a good idea: http://www.phoronix.com/scan.php?page=article&item [phoronix.com]

        • by armanox ( 826486 )

          Yeah, it's not as though other implementations of X11 ever existed, and since the codebase is so screwed up it's a good thing that the people that managed X.org won't get to screw up again. Oh wait...

    • When they give me network transparency to run remote X applications I'll try it. I use that feature daily before you ask, it's not optional.

    • Cue negative Wayland comments by those who have not read, or do not understand the X.org code. Who do we hope will maintain the codebase? There's what, four men still alive, who can do the job?

      My experience with Wayland is "It's half working and twice as slow as X11". To obtain wide acceptance, performance tuning and shortening of execution path lengths are needed.

      Finally, from a terminal mode, (there is of yet, no wayland terminal), it is impossible to start a gui program. Typically, while in Wayland, enter terminal mode and invoke gparted, or qt-creator yumex-dbf or other. Most will not start execution

  • by BoxRec ( 532280 ) <<john> <at> <boxrec.com>> on Saturday August 20, 2016 @06:34AM (#52737419) Homepage
    I use the desktop for work, since April 2011 Linux desktops have promoted Eye Candy above Functionality. I am not just moaning about Fedora here, these are generalized complaints. Will I be able to switch instantly between windows/desktops ? probably not, there will be some lag due to the necessities of Eye Candy. Will I have a visual indicator of which documents I have open, nope, I will have to rely on subtle clues hidden at the edge of the monitor to hunt for them. Will I be able to quickly and easily navigate/tab down to some little used graphics program, nope I will to use a graphic menu clicking all over the place and making sense of the whole screen or even worse have to google for the name and type it in.
    • Have you tried OpenBox?
    • by short ( 66530 )
      By April 2011 you mean Gnome 3, right? Then continue using Gnome 2, it is called XFCE. There are also other equivalent "sane" DEs - like Cinnamon and Mate but I do not see there a difference, XFCE is a safe bet.
    • I use the desktop for work, since April 2011 Linux desktops have promoted Eye Candy above Functionality.

      Welcome to Linux in the desktop. This is what many in the Linux community are pushing in an effort to beat Microsoft in the desktop. No wonder they are mostly spinning their wheels. Fortunately, we (still) have alternatives in the Linux world.

    • These are nothing to do with Wayland, but upon what you build upon it. Wayland provides a protocol for local programs to render to client buffers and efficiently pass these to the compositor, and to pass event information back to the application, and essentially little else. All additional functionality is a matter of how you design your compositor (of which Weston is just a sample implementation), and your compositor does not _only_ have to talk Wayland. It is important to understand the software engineering concept of coupling, namely what happens when the design of one component mandates behaviour and design of another component. Minimising this maximises flexibility, but perhaps gives you less 'for free'. An extremely lightweight compositor designed for getting work done is not out of the question, and most likely there will be a proliferation of compositor designs as there was for window manager designs in the earlier days of Linux.

  • Hmm I'm using Fedora on my server/home theater PC and work/home notebook and I've tried Wayland but it had some limitations. When the mouse pointer changes from arrow to a caret (for example) the mouse motion seems to slow down. Recently I've discoved xdotool and obviously it doesn't work with Wayland. Let's hope X11 will be supported for awhile until this things are fixed.
  • God, every news about Wayland is worst then systemd news. Sounds like all Slashdot readers are using remote desktop over X and this will be the reality for all the users in the world in the desktop/mobile.
  • Gnome 3 (pffft!) user here. I've been using Wayland by default with it for almost a year one... with zero issues. And i do mean zero. It runs better and using less resources than X.org ever did.

    You might whine about Fedora all you want, but the switch makes a lot of sense for non-remote *nix desktop users. Which i'd venture to say it's pretty much all of their user base nowadays.

    • by Anonymous Coward

      So, the question seems to come down to whether Wayland can do remote apps as effectively as X can, either by itself or by way of some kind of extension. I've read the entire thread so far, and no answer, not even a theoretical one.

      • So, the question seems to come down to whether Wayland can do remote apps as effectively as X can, either by itself or by way of some kind of extension. I've read the entire thread so far, and no answer, not even a theoretical one.

        The thing is, X cannot even do remote effectively anymore - at least not with modern DEs/WMs. We're way past the days of rendering with geometrical primitives.

  • by Bryan Ischo ( 893 ) * on Sunday August 21, 2016 @12:21AM (#52741373) Homepage

    Wayland is attractive to its developers because it explicitly implements a much reduced feature set compared to X11. Quite a few of the X11 features are historic and not of interest to very many modern users, but then again there are some features that are useful and Wayland doesn't offer a replacement for them.

    X11 includes a rendering API for 2d graphics, and through extensions, for a variety of compositing and other more "modern" operations. Wayland provides no rendering API at all. Wayland is just a graphics compositing server with input support. It's a small fraction of what X is. It gives you a buffer to write your pixels into and you have to bring a rendering implementation to the party yourself.

    This means that applications have even less coherency than they had with X11; X programs have a fundamental set of behaviors that are all the same due to using a single rendering framework. The degree to which this will matter in practice, given how poorly X programs adhere to any kind of common UI paradigm anyway, remains to be seen.

    Apparently there's this thing called Mir that Ubuntu is developing that is a competitor to Wayland for the X replacement (where neither is actually a replacement, offering significantly less functionality in both cases). I guess that Ubuntu rejected Wayland and decided to roll their own. I would bet a fair sum that Fedora is pushing Wayland in this way to try to prevent Ubuntu from gathering its own momentum with Mir. I doubt they're pushing it for any reason that benefits end users. It's purely political as a means to prevent a competitor's favored X replacement from gaining support.

    I have been an X user for about 26 years now and I have zero problems with it and would rather not see a replacement take over, especially one that is likely to be a step sideways/backwards from an end user perspective ala systemd. But given that Wayland by itself is not nearly as useful as X by itself, I expect that operating systems will use Wayland, at least for a while, as a layer underneath the X server. X will remain, it will just allow Wayland to own its frame buffer instead of owning it itself. And in the end, the functionality I require from X will remain because the X server will remain.

The only possible interpretation of any research whatever in the `social sciences' is: some do, some don't. -- Ernest Rutherford

Working...