I'm trying to make this statement work in my Scala code:
val dvd1 = Item(new Description("The Matrix DVD", 15.50, "DVD World"))
I have the following classes and companion object:
class Item(){
    private var id = 0
    def getId(): Int = this.id
}
object Item{
    def apply(description: String, price: Double, supplier: String): Description = {
        new Description(description, price, supplier)
    }
    def nextId: Int = {
        this.id += 1
    }
}
class Description(description: String, price: Double, supplier: String){
    def getDescription(): String = description
    def getPrice(): Double = price
    def getSupplier(): String = supplier
}
And I get the following error with my apply function and nextId:
error: not enough arguments for method apply: (description: String, price: Double, supplier: String)Description in object Item.
Unspecified value parameters price, supplier.
    val dvd1 = Item(new Description("The Matrix DVD", 15.50, "DVD World"))
                   ^
indus.scala:16: error: value id is not a member of object Item
        this.id += 1
             ^
It's not apparent to me what I'm doing wrong.
Question: What do I need to change with my apply function so that dvd1 will work as expected. Also, nextId should increment the Item's id when Item.nextId is called, what's wrong there?
 
    