implement availableImpl and skipImpl