splitting up different functionality adding tasks