implement all the logic except dealing cards, ruin all the tests