First pass at splitting out bidding into a separate module