Level Up! Ryan has discovered generics in Java

Make the library more extensible by changing Element to an interface
and having data structures accept objects that implement it