Necessary? This seems like a scary API.