This file isn't compiled with ARC
Error handling follows Cocoa idioms