Components

I don't consider these changes done yet, but pull request is just to give them some visibility and make them available for easy preliminary reviewing.