james | adding weak references to attempt to resolve circular dependencies