first pass at checkout logic complete