weakobject annotation applies only for explicitly marked classes or interfaces