// MARK:- METHODS

        // Primary bid method

        public void Bid(Product _item)
        {
            lock (productLock)
            {
                //!_item.IsMyBidLast(this.name) && !BidLimitReached(_item)
                while (!_item.IsMyBidLast(name) && !BidLimitReached(_item))
                {
                    // Check price of item
                    if (_item.GetBidPrice() == 0)
                    {
                        // if no bid has been made, make Ask price your bid
                        _item.AddBid(CreateBid(_item.GetAskPrice() + (BidLimit + 33)));
                        _item.SetNameOfLastBidder(name);
                        Console.WriteLine(" {0} added bid of ${2} to {1}", name, _item.GetProductName(), _item.GetBidPrice());
                    }
                    else
                    {
                        // if bid exist, make highest bid + your new bid
                        _item.AddBid(CreateBid(_item.GetBidPrice() + 1));
                        _item.SetNameOfLastBidder(name);
                        Console.WriteLine(" {0} added bid of ${2} to {1}", name, _item.GetProductName(), _item.GetBidPrice());
                    }
                }
            }

            // Check If My Name If Last
        }