refactored for ARC, including replacing the old SDK with the newest version