Moved all the code into the namespace as it now works through duck typing