base tasks logic