Implementing APNS APIs