Adds a whole bunch of new functionality