Cleanup the mess

Now we have a design that make some sense.