Replacing all of the NXObject hierarchy with XObject again. This now makes sense since i'm using interfaces.