a simple implement with split reference counts