rename "IElement" to "Element"
make "IElement" an abstract class. rename to "Element", and clean up implementors.
clean up the code a bit.
Merge pull request #2 from beannaich/feature/element-abc

Element ABC