simplified retain/release implementations