refactored how tasks are handled client side