implements card and hand models