move heaving processing into IntentService