Convert to ARC and add async loading convenience method