public Long orderPart(PartType partType, int quantity) {
        if (partType == null) {
            throw new IllegalArgumentException("partType cannot be null");
        }
        if (quantity < 1) {
            throw new IllegalArgumentException("quantity should be at least 1");
        }
        Order order = new Order(counter.incrementAndGet());
        order.setType(partType);
        order.setQuantity(quantity);
        orderById.put(order.getId(), order);
        System.out.println("New order: " + order);
        scheduler.scheduleTaskToRandomTime(new SatisfyOrderNeedsTask(order), 1, 10, TimeUnit.SECONDS);
        return order.getId();
    }