relax Rc restrictions and add strong/weak reference counted pointer type