aaargh, we should require ARC