Add a componentsOf method

This still needs to be documented, but the code's there!

Closes #8 and #9.