Components2, ready for implementation!

This is temporary - everything specified so far is figured out except oracle, which is a simplified version of what it's supposed to be and therefore inaccurate. Ready for a basic demo though.