split into different tasks