breaking out main tasks into sub-tasks