ARC updates

This might perhaps be better in a branch rather than master so both ARC and non-ARC can exist together.