Experimental extensions implementation

This is just an experiment to see what extensions might look like and also to get a better understanding of all the nooks and crannies of the problem.
These unnecessary requires were causing a circular dependency.