Refactoring: Now using CardInterface and PlayerInterface