BW refactored to modern objective-c (including ARC)