refactored PushManager.cs