 
         describe("estimates") {
             it("gives no estimtates when no estimates present") {
-                expect(saleArtwork.estimateString) == "No Estimate"
+                expect(saleArtwork.viewModel.estimateString) == "No Estimate"
             }
             
             it("gives estimtate range when low and high are present") {
                 saleArtwork.lowEstimateCents = 100_00
                 saleArtwork.highEstimateCents = 200_00
-                expect(saleArtwork.estimateString) == "Estimate: $100–$200"
+                expect(saleArtwork.viewModel.estimateString) == "Estimate: $100–$200"
             }
 
             it("gives estimate if present") {
                 saleArtwork.estimateCents = 200_00
-                expect(saleArtwork.estimateString) == "Estimate: $200"
+                expect(saleArtwork.viewModel.estimateString) == "Estimate: $200"
             }
 
             it("give estimate if estimate both and low/high are present") {
                 saleArtwork.highEstimateCents = 300_00
                 saleArtwork.lowEstimateCents = 100_00
                 saleArtwork.estimateCents = 200_00
-                expect(saleArtwork.estimateString) == "Estimate: $200"
+                expect(saleArtwork.viewModel.estimateString) == "Estimate: $200"
             }
             
             it("gives no estimate if only high is present") {
                 saleArtwork.highEstimateCents = 100_00
-                expect(saleArtwork.estimateString) == "No Estimate"
+                expect(saleArtwork.viewModel.estimateString) == "No Estimate"
             }
 
             it("gives no estimate if only low is present") {
                 saleArtwork.lowEstimateCents = 100_00
-                expect(saleArtwork.estimateString) == "No Estimate"
+                expect(saleArtwork.viewModel.estimateString) == "No Estimate"
             }
 
             it("indicates that an artwork is not for sale") {
                 saleArtwork.artwork.soldStatus = "sold"
-                expect((saleArtwork.forSaleSignal.first() as! Bool)).toEventually( beFalse() )
+                expect((saleArtwork.viewModel.forSaleSignal.first() as! Bool)).toEventually( beFalse() )
             }
 
             it("indicates that an artwork is for sale") {
                 saleArtwork.artwork.soldStatus = "anything else"
-                expect((saleArtwork.forSaleSignal.first() as! Bool)).toEventually( beTrue() )
+                expect((saleArtwork.viewModel.forSaleSignal.first() as! Bool)).toEventually( beTrue() )
             }
         }
 
         describe("reserve status") {
             it("gives default number of bids") {
-                let reserveStatus = saleArtwork.numberOfBidsWithReserveSignal.first() as! String
+                let reserveStatus = saleArtwork.viewModel.numberOfBidsWithReserveSignal.first() as! String
 
                 expect(reserveStatus) == "0 bids placed"
             }

                it("updates reserve status when reserve status changes") {

                    var reserveStatus = ""
                    saleArtwork.numberOfBidsWithReserveSignal.subscribeNext { (newReserveStatus) -> Void in
                        reserveStatus = newReserveStatus as! String
                    }



                it("sends new status when number of bids changes") {
                    var invocations = 0
                    saleArtwork.viewModel.numberOfBidsWithReserveSignal.subscribeNext { (newReserveStatus) -> Void in
                        invocations++
                    }

