refactor PlayingCard class to use introspection