pushsdk refactor for user