Initial version supporting ARC - please do not assume this fully works