abstract out card and hand classes