Use TaskInternal instead of casting BasicTask