Add a bunch of new element types
Flesh out base classes a bit
Flesh out implementation a bit
Add a few links to docs