splite to task and loader