Added ability to have different "types" of elements