class ChainCellRouter implements CellRouter {

    @Override
    public Optional<Cell> routeKey(JobDescriptor jobDescriptor) {
        for (CellRouter cellRouter : cellRouters) {
            Optional<Cell> result = cellRouter.routeKey(jobDescriptor);
            if (result.isPresent()) {
                return result;
            }
        }
        return Optional.empty();
    }

    public  ChainCellRouter(List<CellRouter> cellRouters);

}