Moved everything to classes, elements extend the base Element class which implements an iElement interface to make sure they all have outputs