public void testAnonymousObjectRegistration()
     throws InvalidTheoryException, InvalidObjectIdException {
   OOLibrary lib = (OOLibrary) engine.getLibrary("alice.tuprolog.lib.OOLibrary");
   String theory = "demo(X) :- X <- update. \n";
   engine.setTheory(new Theory(theory));
   TestCounter counter = new TestCounter();
   // check registering behaviour
   Struct t = lib.register(counter);
   engine.solve(new Struct("demo", t));
   assertEquals(1, counter.getValue());
   // check unregistering behaviour
   lib.unregister(t);
   SolveInfo goal = engine.solve(new Struct("demo", t));
   assertFalse(goal.isSuccess());
 }