add a deck feature, needs refactor